/*******************************************************************************
* Copyright (c) 2006, 2015 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
*     IBM Corporation - initial API and implementation
*********************************************************************************/

// This file was generated by LPG

package org.eclipse.cdt.internal.core.dom.lrparser.cpp;

public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CPPSizeofExpressionParsersym {

    public interface IsKeyword {
        public final static byte isKeyword[] = {0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0
        };
    };
    public final static byte isKeyword[] = IsKeyword.isKeyword;
    public final boolean isKeyword(int index) { return isKeyword[index] != 0; }

    public interface BaseCheck {
        public final static short baseCheck[] = {0,
            0,0,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,3,1,1,1,1,1,1,
            1,1,2,2,1,1,0,1,0,4,
            2,3,2,3,2,2,1,0,1,1,
            4,4,4,8,8,3,3,4,4,3,
            3,2,2,7,7,7,7,4,5,6,
            3,2,2,1,1,1,2,2,2,2,
            2,2,2,2,2,7,9,3,0,1,
            2,2,1,2,3,4,1,0,3,1,
            0,3,5,1,4,1,3,3,1,3,
            3,3,1,3,3,1,3,3,1,3,
            3,3,3,1,3,3,1,3,1,3,
            1,3,1,3,1,3,1,5,1,3,
            5,3,3,1,3,3,1,3,1,3,
            1,3,1,3,1,3,1,5,1,1,
            3,3,3,3,3,3,3,3,3,3,
            3,1,2,1,1,3,3,3,3,3,
            3,3,3,3,3,3,1,2,1,3,
            1,0,1,0,1,1,0,1,1,1,
            1,1,1,1,1,1,3,4,3,2,
            1,4,2,1,2,5,7,5,1,4,
            1,0,5,7,2,8,1,1,2,2,
            3,2,3,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,2,
            1,0,4,4,2,2,2,2,2,1,
            0,1,1,1,1,1,1,2,1,2,
            2,2,1,1,2,2,1,2,2,1,
            2,2,1,2,2,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,3,4,4,
            5,2,5,6,5,0,1,0,7,8,
            0,1,3,1,0,1,3,1,7,6,
            0,7,6,1,0,6,5,6,4,1,
            3,1,0,1,1,2,1,1,3,1,
            3,1,1,1,1,3,9,2,2,3,
            2,5,3,7,0,1,2,2,1,0,
            1,1,1,3,1,2,1,1,2,3,
            1,1,1,3,2,1,2,2,9,8,
            2,1,3,1,3,1,0,1,0,2,
            1,1,3,1,3,2,1,5,8,1,
            2,3,1,1,7,6,3,0,0,1,
            3,1,1,5,6,6,7,7,0,0,
            1,0,1,1,1,2,4,2,2,1,
            5,1,1,1,1,1,1,1,2,1,
            0,1,3,1,1,2,3,2,1,2,
            2,1,0,1,3,3,5,5,4,1,
            1,1,1,0,1,5,2,2,1,2,
            2,1,0,1,3,4,3,1,1,5,
            2,1,1,3,3,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,2,2,7,1,0,1,3,1,1,
            2,4,2,4,7,9,5,1,3,1,
            0,1,1,3,2,3,2,2,1,0,
            1,1,4,5,2,1,2,2,2,2,
            2,2,2,1,1,2,1,1,2,4,
            4,2,1,2,5,5,3,3,1,4,
            3,1,0,1,3,1,1,-62,0,0,
            0,0,-2,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-4,-10,0,0,0,0,
            0,0,0,-123,0,0,-5,0,0,-472,
            0,0,0,0,-279,0,0,-136,0,-137,
            -594,-428,0,0,0,0,0,0,0,0,
            0,0,0,0,-198,0,0,0,0,-6,
            0,-18,0,0,0,-114,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-282,0,0,0,0,
            0,0,-49,-42,0,0,-61,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-415,0,-71,0,0,0,0,0,
            0,0,0,0,0,0,0,-126,0,0,
            0,0,0,-196,0,0,0,-115,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-53,0,0,
            0,0,0,0,-522,0,0,0,-58,0,
            0,0,0,-7,0,0,0,0,0,0,
            -121,0,-385,0,0,0,0,0,0,0,
            0,0,0,0,-8,-130,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-260,0,0,-128,0,-72,0,0,
            0,0,-9,0,0,0,0,0,0,0,
            0,0,0,-51,0,-50,-54,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-596,0,0,0,0,-117,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-261,-47,0,0,0,-259,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-64,0,-65,0,0,
            0,0,0,0,-325,0,0,0,-444,-141,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-311,0,0,-11,0,0,0,0,
            0,0,0,-571,0,0,0,0,-262,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -12,0,0,0,0,0,0,0,0,-13,
            0,0,0,0,0,0,-177,0,0,0,
            -16,0,0,0,-526,0,0,0,0,0,
            0,0,0,0,0,0,-595,0,0,0,
            0,-510,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-197,0,0,-215,0,0,
            0,0,0,0,0,0,0,0,0,-272,
            0,0,0,0,-92,0,0,0,0,-367,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-119,0,0,0,-211,0,0,0,0,
            0,0,-502,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-112,
            -15,0,0,0,0,0,0,0,0,0,
            0,-28,0,0,0,-235,0,0,0,0,
            0,-146,0,0,0,-368,0,0,0,0,
            0,0,0,0,0,-3,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-199,0,0,
            0,0,0,0,0,0,0,-176,0,0,
            0,0,-91,0,0,0,0,-29,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-57,
            -30,0,0,-31,0,0,0,0,0,0,
            0,-329,0,0,0,0,-269,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-195,0,0,0,0,0,0,0,
            -32,0,0,-264,0,0,0,0,0,-570,
            -375,0,0,0,0,-33,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-209,0,0,
            0,-129,0,0,0,0,-402,0,0,-143,
            0,0,-273,0,0,0,0,-376,0,0,
            0,0,-316,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-48,0,0,0,-214,0,
            0,0,0,0,0,0,-357,0,0,-280,
            0,0,0,0,-345,-34,0,-39,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-145,0,0,0,0,0,
            0,0,0,0,0,0,-152,0,0,-286,
            0,0,0,0,-356,0,-440,-41,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-205,0,0,-270,0,
            0,0,0,0,0,0,0,0,0,-326,
            0,0,0,0,-94,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-388,0,0,-287,0,0,0,
            0,-95,0,0,0,0,-35,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-308,0,
            0,0,-321,0,0,0,0,0,0,0,
            -421,0,0,-327,0,0,0,0,-96,0,
            0,0,0,-36,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-322,-37,0,0,-324,
            0,0,0,0,0,0,0,0,0,0,
            -339,0,0,0,0,-97,0,0,0,0,
            -371,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-328,-38,0,0,-340,0,0,0,
            0,0,0,0,0,0,0,-369,0,0,
            0,0,-98,0,0,0,0,-40,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-360,
            -55,0,0,0,-405,0,0,0,-423,0,
            0,-56,0,0,-390,0,0,0,0,-99,
            0,0,0,0,-66,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-361,0,0,0,
            -365,0,0,0,0,0,0,0,-366,0,
            0,-59,-60,0,-409,0,-100,0,0,0,
            0,-67,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-69,0,
            0,0,-353,0,0,-377,0,0,-107,-113,
            0,-410,0,-101,0,0,0,0,-70,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-383,-108,0,0,0,0,
            0,0,-443,0,0,0,0,-400,-309,0,
            -102,0,0,0,0,-109,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-391,-110,0,0,0,0,0,0,-394,
            0,0,-434,-332,0,-111,0,-103,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-395,
            0,0,0,-447,0,0,-131,0,0,-460,
            0,0,-138,0,-104,0,0,0,0,-540,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-397,-139,0,0,0,
            0,0,0,-140,0,0,-323,0,0,-221,
            0,-134,0,0,0,0,-265,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-411,-116,
            0,0,0,0,0,0,0,-341,0,0,
            0,0,0,-222,0,0,0,0,-354,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-153,
            0,0,0,0,0,0,-266,0,0,0,
            -436,0,0,-374,0,0,0,0,-154,0,
            -246,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -503,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-229,0,-399,-313,
            0,0,0,0,0,0,0,-155,-319,0,
            0,0,0,0,0,0,-247,0,0,0,
            0,-156,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-147,-355,0,0,0,-413,0,
            0,0,0,0,0,-446,0,0,0,-333,
            0,0,-118,0,-157,0,0,0,0,0,
            0,-158,-492,0,0,-320,0,0,0,0,
            0,0,-248,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-475,
            -457,0,-159,0,0,-14,0,-284,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-431,0,0,
            -392,-160,0,0,0,0,0,0,-249,0,
            0,0,0,-161,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-151,0,-363,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-120,0,-379,0,0,0,
            0,-416,0,-461,0,0,0,-412,0,0,
            0,0,0,0,-250,0,0,0,0,-600,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-501,-389,0,-419,0,0,0,0,-162,
            0,0,0,0,0,0,0,0,0,0,
            -163,0,0,0,0,0,0,0,0,0,
            -192,0,0,0,0,0,0,0,0,0,
            -251,0,0,0,0,-164,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-207,0,
            -564,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-350,
            0,0,0,-165,0,-572,0,0,0,-435,
            0,0,0,0,0,0,-252,0,0,0,
            0,-166,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-167,-168,-450,-169,
            -464,0,0,0,0,0,0,0,-430,0,
            0,0,-480,0,-170,0,-425,-463,0,0,
            0,0,-171,0,0,0,0,0,0,0,
            0,0,-253,0,0,0,0,-172,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -216,0,-148,0,0,0,0,-173,0,0,
            0,0,0,0,0,-174,0,0,0,0,
            0,-470,-449,0,0,0,0,0,-506,0,
            0,-418,0,0,0,0,0,0,-254,0,
            0,0,0,-175,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-274,0,-150,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-474,0,0,-478,0,0,-471,0,0,
            0,0,0,-178,-537,0,0,-422,0,0,
            0,0,0,0,-255,0,0,0,0,-182,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-281,0,-393,0,0,0,0,0,
            0,0,0,0,0,0,-476,-487,0,0,
            -483,0,0,0,0,-453,0,-490,0,-462,
            0,-499,0,-583,0,0,0,0,0,0,
            -256,0,0,0,0,-183,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -433,0,0,0,0,0,0,0,0,0,
            0,0,0,-532,-43,0,-122,0,0,0,
            -184,-536,0,-185,0,-283,0,-479,-527,0,
            -586,0,0,0,0,0,-352,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-186,0,0,0,0,0,
            0,-187,0,-188,0,-288,-344,-535,0,-554,
            0,0,0,0,0,0,0,0,0,-556,
            0,-504,0,0,0,0,0,0,0,0,
            0,0,-589,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-558,-189,0,0,0,0,0,
            0,-515,0,0,0,-289,-290,-190,0,-387,
            0,0,0,0,-587,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-567,0,0,0,
            0,0,0,0,0,0,0,0,-524,0,
            0,-403,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-278,-191,
            0,0,-194,0,0,0,0,0,0,0,
            -575,0,0,0,-202,0,0,-533,-525,-203,
            -206,-538,0,-291,-338,0,-557,-348,-414,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-217,0,0,-349,0,0,
            -438,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-227,0,
            0,0,-228,0,0,0,0,0,0,-236,
            0,0,-267,-275,-277,-285,0,0,0,-551,
            -552,-296,-297,-218,0,0,0,-439,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-298,-299,0,0,0,
            0,0,0,-300,0,0,0,0,0,-513,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-180,-301,-351,0,
            -302,0,0,0,0,-303,0,0,-304,0,
            0,-124,-305,-306,-307,-312,-230,-437,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-181,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-314,0,-315,-584,-330,-331,0,0,-220,
            0,0,0,0,-73,0,-342,0,-346,0,
            0,0,0,-347,-133,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-358,
            0,-559,0,-380,-420,0,0,-448,-106,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-258,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-482,0,-337,-359,-417,0,
            -364,0,0,0,-201,0,0,0,-372,-373,
            -384,-404,0,-406,0,-426,0,0,0,0,
            0,0,-579,0,-429,0,0,-528,0,0,
            -93,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-592,-599,0,
            0,0,-442,0,0,0,-531,0,-245,0,
            0,0,0,-534,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-455,0,0,0,0,
            -456,0,-458,-459,-465,0,-467,-473,-481,-488,
            0,-489,-512,0,-514,0,0,0,0,-563,
            0,-516,0,-517,-243,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-518,-378,0,0,0,-519,-231,-521,
            -539,-541,-336,-542,-544,-549,0,-553,-560,0,
            -568,0,-577,-370,0,-565,0,-585,0,-244,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-590,0,-601,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-88,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-569,0,-573,-574,0,-240,0,0,0,
            0,-593,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-89,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-90,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-241,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-454,0,0,0,0,0,0,
            0,0,0,0,0,0,-242,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-193,0,0,0,0,0,-135,
            -598,0,0,0,0,0,0,-493,0,0,
            0,0,-495,0,0,0,0,0,0,0,
            0,0,-232,0,0,0,0,0,0,0,
            0,0,0,-233,0,0,0,0,0,0,
            0,0,0,0,0,0,-82,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-523,0,0,
            0,0,0,0,0,0,0,-529,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-83,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-84,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-85,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -237,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-238,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-239,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-276,0,0,0,0,0,0,0,0,
            0,0,0,0,-295,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-335,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-362,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-127,0,0,0,0,0,0,0,0,
            0,-530,0,0,0,0,0,0,0,-292,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-52,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-200,0,0,
            0,0,-77,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -468,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-86,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -293,0,0,0,0,0,0,0,0,0,
            0,-401,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-87,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-491,0,0,0,0,0,0,0,
            0,0,0,-208,0,0,-44,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-142,0,0,0,0,0,-1,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-511,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-144,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-210,0,0,0,0,0,-68,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-588,0,0,0,0,0,0,
            0,0,0,0,0,0,-78,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-382,0,0,0,0,0,0,
            0,0,0,0,0,0,-441,0,0,0,
            0,0,0,0,0,0,0,0,0,-386,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-204,0,0,0,0,
            0,0,0,0,0,-74,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-520,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-498,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-543,0,-548,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-149,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-545,0,0,
            0,0,0,0,0,0,-268,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-271,0,0,0,
            0,0,0,0,0,-485,0,0,-105,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-562,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-334,0,
            0,0,-223,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-576,0,0,0,0,0,0,0,-408,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -398,0,0,0,0,0,-591,0,0,0,
            0,0,-224,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-578,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-219,0,0,0,-225,0,-226,0,
            0,0,0,0,0,0,0,0,0,0,
            -45,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-580,0,0,0,0,0,0,0,
            0,0,0,0,0,-79,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-494,0,-582,0,0,0,0,0,
            0,0,0,-407,0,0,0,0,0,0,
            0,0,0,0,-294,0,0,0,0,0,
            0,0,0,0,0,0,0,-17,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-597,0,-257,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-310,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-343,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-602,0,0,0,0,0,
            0,0,0,-445,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-581,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-80,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-81,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-179,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-20,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-21,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-22,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-23,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-24,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-25,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-26,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-27,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-63,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-75,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-76,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-132,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-212,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-19,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-424,
            0,0,0,-46,0,0,0,0,0,0,
            0,-452,0,0,0,0,0,-566,0,0,
            0,0,0,-500,0,0,0,0,0,0,
            0,-466,0,0,0,0,0,-561,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-125,0,0,0,0,0,-396,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-546,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-317,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-427,0,
            0,0,0,0,0,0,0,0,-432,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-451,0,
            0,0,0,0,0,0,0,0,0,0,
            -477,0,0,0,0,0,0,0,-507,-469,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -486,-234,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-263,0,0,0,0,0,
            0,-381,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-318,0,0,0,0,0,0,
            0,0,0,0,0,-484,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-496,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -497,0,0,0,0,0,0,0,-213,0,
            0,0,0,0,-505,0,0,0,0,0,
            0,0,0,0,0,0,0,-547,0,0,
            0,0,0,-550,0,0,0,-508,0,0,
            0,0,0,0,0,0,0,-509,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-555,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0
        };
    };
    public final static short baseCheck[] = BaseCheck.baseCheck;
    @Override
    public final int baseCheck(int index) { return baseCheck[index]; }
    public final static short rhs[] = baseCheck;
    @Override
    public final int rhs(int index) { return rhs[index]; };

    public interface BaseAction {
        public final static char baseAction[] = {
            191,5,154,94,94,32,32,80,80,39,
            39,42,42,218,1,1,16,16,16,16,
            16,16,16,17,17,17,15,11,11,6,
            6,6,6,6,6,2,75,75,4,4,
            12,12,44,44,155,155,156,67,67,43,
            18,18,18,18,18,18,18,18,18,18,
            18,18,18,18,18,18,18,18,18,157,
            157,157,131,131,19,19,19,19,19,19,
            19,19,19,19,19,19,20,20,192,192,
            193,193,194,160,160,161,161,158,158,162,
            159,159,21,21,22,22,23,23,23,24,
            24,24,24,25,25,25,26,26,26,30,
            30,30,30,30,33,33,33,34,34,35,
            35,37,37,38,38,40,40,41,41,45,
            45,45,45,45,47,47,47,52,52,54,
            54,61,61,62,62,63,63,64,64,65,
            65,65,65,65,65,65,65,65,65,65,
            65,65,29,29,46,46,46,46,46,46,
            46,46,46,46,46,46,46,36,28,163,
            163,105,105,195,195,104,219,219,82,82,
            82,82,82,82,82,82,82,83,83,83,
            78,78,66,66,196,196,84,84,84,116,
            116,197,197,85,85,85,85,198,198,86,
            86,86,86,86,87,87,95,95,95,95,
            95,95,95,95,55,55,55,55,55,132,
            132,130,130,56,199,27,27,27,27,27,
            50,50,69,69,69,69,69,137,137,133,
            133,133,133,133,134,134,134,135,135,135,
            136,136,136,165,165,165,70,70,70,70,
            70,71,71,71,13,14,14,14,14,14,
            14,14,14,14,14,14,106,138,138,138,
            138,138,138,111,111,111,166,167,167,112,
            112,200,169,169,168,168,139,139,117,92,
            92,140,58,49,170,170,59,57,97,97,
            171,171,164,164,141,142,142,143,89,89,
            172,172,76,76,76,73,73,72,77,77,
            79,79,68,68,68,53,98,98,108,107,
            107,51,51,74,74,81,81,60,109,109,
            109,99,99,99,100,100,101,101,101,102,
            102,118,118,118,120,120,119,119,220,220,
            103,103,202,202,202,202,202,145,48,48,
            174,201,201,146,146,147,147,147,148,176,
            203,203,31,31,110,114,114,114,114,205,
            122,121,121,113,113,113,177,178,178,178,
            178,178,178,178,178,178,178,178,207,207,
            204,204,206,206,179,180,180,180,180,181,
            208,124,123,123,209,209,182,182,182,182,
            115,115,115,210,210,8,8,9,211,211,
            212,183,173,173,184,184,185,186,186,7,
            7,10,213,213,213,213,213,213,213,213,
            213,213,213,213,213,213,213,213,213,213,
            213,213,213,213,213,213,213,213,213,213,
            213,213,213,213,213,213,213,213,213,213,
            213,213,213,213,90,93,93,187,187,150,
            150,151,151,151,151,151,151,3,152,152,
            149,149,188,221,222,222,223,223,224,225,
            225,189,190,190,190,190,214,214,214,126,
            126,126,126,126,127,128,128,125,125,96,
            91,88,88,175,175,129,129,215,215,215,
            153,153,144,144,216,216,191,191,1119,35,
            2044,2037,4502,1355,27,30,31,1030,1171,26,
            28,2003,294,25,23,50,1182,104,75,76,
            106,1258,1284,1281,1346,332,147,175,1331,306,
            924,1587,1436,1657,1213,1634,1704,413,1728,174,
            71,35,1822,423,189,2555,35,310,1941,264,
            2532,319,1638,35,1021,32,4949,3844,27,30,
            31,1030,1171,373,28,1405,1297,267,262,263,
            1510,466,1673,35,1822,423,2360,35,1021,32,
            672,5442,27,30,31,1030,1171,26,28,986,
            294,25,23,50,1182,104,75,76,106,1258,
            1284,1281,2816,49,307,160,2600,1519,274,277,
            280,821,1132,56,56,1775,958,3766,676,1206,
            1671,2750,3345,2864,350,3441,355,387,2861,388,
            2912,908,2263,2395,2857,5962,283,2905,2914,2975,
            159,577,187,71,3449,1543,35,1021,32,4828,
            1859,27,30,31,1030,1171,57,28,1537,35,
            312,625,4328,3272,759,35,3173,2137,2360,35,
            1021,32,672,5442,27,30,31,1030,1171,26,
            28,986,294,25,23,50,1182,104,75,76,
            106,1258,1284,1281,2816,49,386,160,1818,1037,
            1238,548,574,3257,578,71,3180,1775,1334,71,
            1849,1997,34,2750,2046,2864,378,650,648,383,
            2861,1938,2912,2600,1797,2734,376,416,2988,2905,
            2914,2975,159,577,665,2224,2360,35,1021,32,
            672,5442,27,30,31,1030,1171,26,28,986,
            294,25,23,50,1182,104,75,76,106,1258,
            1284,1281,2816,69,2088,160,1818,3337,2215,35,
            1021,32,4828,2369,27,30,31,1030,1171,56,
            28,2750,323,2864,1647,2057,56,2277,2861,2080,
            2912,768,533,548,574,3257,578,2905,2914,2975,
            159,577,61,1912,35,1021,32,5073,1257,27,
            30,31,1030,1171,26,28,3275,3060,546,532,
            2988,271,294,69,71,35,1822,423,2570,35,
            1021,32,672,5442,27,30,31,1030,1171,26,
            28,986,294,25,23,50,1182,104,75,76,
            106,1258,1284,1281,2816,49,1520,160,1335,264,
            495,548,574,3257,578,1851,3449,1775,1170,1556,
            1537,35,312,2750,4564,2864,363,272,262,263,
            2861,2445,2912,1088,3337,3080,1400,1085,2988,2905,
            2914,2975,159,577,2708,35,1021,32,672,69,
            27,30,31,1030,1171,26,28,986,294,25,
            23,50,1182,104,75,76,106,1258,1284,1281,
            1346,2736,439,175,1331,60,764,1587,1436,1657,
            2738,1634,1704,1192,1728,174,2918,71,35,3163,
            413,1559,35,1021,32,71,3608,41,30,31,
            1030,1171,1609,549,574,3257,578,2428,35,1021,
            32,672,1728,27,30,31,1030,1171,26,28,
            986,294,25,23,50,1182,104,75,76,106,
            1258,1284,1281,1346,473,147,175,1331,1824,4867,
            1587,1436,1657,2866,1634,1704,478,1728,174,2918,
            2456,35,310,413,322,3327,35,1021,32,672,
            2634,27,30,31,1030,1171,26,28,986,294,
            25,23,50,1182,104,75,76,106,1258,1284,
            1281,1346,1488,1681,3450,1331,2413,2420,1587,2578,
            420,414,2862,2638,35,1021,32,672,4549,27,
            30,31,1030,1171,26,28,986,294,25,23,
            50,1182,104,75,76,106,1258,1284,1281,1346,
            1104,2765,175,1331,1323,1624,1587,1436,1657,2728,
            1634,1704,3735,1728,174,2918,1537,35,565,413,
            5195,583,1994,35,1021,32,2634,3325,40,30,
            31,1030,1171,421,414,2862,2973,35,1021,32,
            672,1192,27,30,31,1030,1171,26,28,986,
            294,25,23,50,1182,104,75,76,106,1258,
            1284,1281,1346,425,462,175,1331,2010,147,1587,
            1436,1657,4887,1634,1704,1248,1728,174,71,35,
            1997,3159,189,3327,35,1021,32,672,1239,27,
            30,31,1030,1171,26,28,986,294,25,23,
            50,1182,104,75,76,106,1258,1284,1281,1346,
            56,1449,91,1331,1233,836,1587,1436,2577,411,
            414,2862,2973,35,1021,32,672,1488,27,30,
            31,1030,1171,26,28,986,294,25,23,50,
            1182,104,75,76,106,1258,1284,1281,1346,426,
            462,175,1331,56,1037,1587,1436,1657,6195,1634,
            1704,1338,1728,174,71,35,2276,2209,407,1660,
            1728,2973,35,1021,32,672,55,27,30,31,
            1030,1171,26,28,986,294,25,23,50,1182,
            104,75,76,106,1258,1284,1281,1346,56,625,
            175,1331,1818,3059,1587,1436,1657,2491,1634,1704,
            1818,1728,174,71,35,1997,309,407,2973,35,
            1021,32,672,1501,27,30,31,1030,1171,26,
            28,986,294,25,23,50,1182,104,75,76,
            106,1258,1284,1281,1346,2276,437,175,1331,56,
            1206,1587,1436,1657,706,1634,1704,241,1728,174,
            931,35,1997,309,407,1365,1662,406,2502,35,
            1021,32,672,191,27,30,31,1030,1171,26,
            28,986,294,25,23,50,1182,104,75,76,
            106,1258,1284,1281,1346,56,494,175,1331,583,
            1206,1587,1436,1657,5795,1634,1704,1818,1728,174,
            71,3339,1997,73,173,1488,405,2345,2973,35,
            1021,32,672,2641,27,30,31,1030,1171,26,
            28,986,294,25,23,50,1182,104,75,76,
            106,1258,1284,1281,1346,2804,1818,175,1331,56,
            1860,1587,1436,1657,965,1634,1704,1950,1728,174,
            71,35,315,403,190,2973,35,1021,32,672,
            3275,27,30,31,1030,1171,26,28,986,294,
            25,23,50,1182,104,75,76,106,1258,1284,
            1281,1346,1192,1750,175,1331,69,1990,1587,1436,
            1657,51,1634,1704,1818,1728,174,931,35,1997,
            3344,186,2973,35,1021,32,672,65,27,30,
            31,1030,1171,26,28,986,294,25,23,50,
            1182,104,75,76,106,1258,1284,1281,1346,56,
            360,175,1331,56,2099,1587,1436,1657,1110,1634,
            1704,1818,1728,174,71,35,1997,311,185,2973,
            35,1021,32,672,228,27,30,31,1030,1171,
            26,28,986,294,25,23,50,1182,104,75,
            76,106,1258,1284,1281,1346,56,61,175,1331,
            56,1196,1587,1436,1657,3614,1634,1704,95,1728,
            174,71,35,1997,3451,184,2973,35,1021,32,
            672,2929,27,30,31,1030,1171,26,28,986,
            294,25,23,50,1182,104,75,76,106,1258,
            1284,1281,1346,56,1007,175,1331,56,2144,1587,
            1436,1657,823,1634,1704,96,1728,174,71,35,
            1997,314,183,2973,35,1021,32,672,1334,27,
            30,31,1030,1171,26,28,986,294,25,23,
            50,1182,104,75,76,106,1258,1284,1281,1346,
            147,1348,175,1331,5011,2702,1587,1436,1657,2178,
            1634,1704,1847,1728,174,71,35,1997,564,182,
            2973,35,1021,32,672,233,27,30,31,1030,
            1171,26,28,986,294,25,23,50,1182,104,
            75,76,106,1258,1284,1281,1346,2661,441,175,
            1331,56,1908,1587,1436,1657,1815,1634,1704,56,
            1728,174,2277,2277,1862,2634,181,2973,35,1021,
            32,672,2795,27,30,31,1030,1171,26,28,
            986,294,25,23,50,1182,104,75,76,106,
            1258,1284,1281,1346,5772,24,175,1331,2249,1361,
            1587,1436,1657,69,1634,1704,56,1728,174,2277,
            2277,3439,2634,180,2973,35,1021,32,672,1482,
            27,30,31,1030,1171,26,28,986,294,25,
            23,50,1182,104,75,76,106,1258,1284,1281,
            1346,68,53,175,1331,56,1413,1587,1436,1657,
            2672,1634,1704,1915,1728,174,1942,6110,2934,2489,
            179,2973,35,1021,32,672,1934,27,30,31,
            1030,1171,26,28,986,294,25,23,50,1182,
            104,75,76,106,1258,1284,1281,1346,428,462,
            175,1331,56,2112,1587,1436,1657,2738,1634,1704,
            56,1728,174,2934,2670,5840,2132,178,2973,35,
            1021,32,672,456,27,30,31,1030,1171,26,
            28,986,294,25,23,50,1182,104,75,76,
            106,1258,1284,1281,1346,427,462,175,1331,424,
            1488,1587,1436,1657,1499,1634,1704,2831,1728,174,
            759,35,431,1832,177,2973,35,1021,32,672,
            2280,27,30,31,1030,1171,26,28,986,294,
            25,23,50,1182,104,75,76,106,1258,1284,
            1281,1346,2597,358,175,1331,56,3785,1587,1436,
            1657,6039,1634,1704,3724,1728,174,2693,35,313,
            2524,176,2852,35,1021,32,672,159,27,30,
            31,1030,1171,26,28,986,294,25,23,50,
            1182,104,75,76,106,1258,1284,1281,1346,1734,
            1508,2540,1331,5314,3884,1587,1436,1657,2627,1634,
            1704,482,3081,195,2973,35,1021,32,672,2007,
            27,30,31,1030,1171,26,28,986,294,25,
            23,50,1182,104,75,76,106,1258,1284,1281,
            1346,3550,1718,175,1331,1192,2598,1587,1436,1657,
            2008,1634,1704,3063,1728,174,482,843,390,584,
            138,1537,35,488,2007,5872,361,592,366,2084,
            2341,3094,35,1021,32,672,1516,27,30,31,
            1030,1171,26,28,986,294,25,23,50,1182,
            104,75,76,106,1258,1284,1281,2816,2471,1613,
            160,1243,35,1021,32,4949,4990,27,30,31,
            1030,1171,373,28,1903,2341,2750,3847,2864,56,
            1229,35,328,2861,1953,2912,362,369,1423,159,
            271,294,2905,2914,2975,159,171,3094,35,1021,
            32,672,1645,27,30,31,1030,1171,26,28,
            986,294,25,23,50,1182,104,75,76,106,
            1258,1284,1281,2816,1595,1335,160,86,264,2489,
            100,2402,369,353,2260,355,2489,348,1954,1656,
            2701,464,2750,1350,2864,1653,272,262,263,2861,
            347,2912,227,2171,35,488,3002,5872,2905,2914,
            2975,159,170,3094,35,1021,32,672,3503,27,
            30,31,1030,1171,26,28,986,294,25,23,
            50,1182,104,75,76,106,1258,1284,1281,2816,
            1499,147,160,399,264,6246,2734,1427,2623,3184,
            2775,4307,341,344,2593,481,3545,3547,2750,319,
            2864,1801,276,262,263,2861,320,2912,2789,359,
            1485,2007,415,377,2905,2914,2975,159,169,3094,
            35,1021,32,672,417,27,30,31,1030,1171,
            26,28,986,294,25,23,50,1182,104,75,
            76,106,1258,1284,1281,2816,884,2277,160,1243,
            35,1021,32,4949,4990,27,30,31,1030,1171,
            373,28,2341,3184,2750,1655,2864,2762,1809,42,
            3125,2861,56,2912,759,35,431,1994,2929,52,
            2905,2914,2975,159,168,3094,35,1021,32,672,
            319,27,30,31,1030,1171,26,28,986,294,
            25,23,50,1182,104,75,76,106,1258,1284,
            1281,2816,56,1365,160,2627,264,1206,368,369,
            2417,353,2260,355,389,348,1954,485,3545,3547,
            2750,2420,2864,592,279,262,263,2861,3364,2912,
            3514,1815,1192,44,3125,3884,2905,2914,2975,159,
            167,3094,35,1021,32,672,495,27,30,31,
            1030,1171,26,28,986,294,25,23,50,1182,
            104,75,76,106,1258,1284,1281,2816,1750,2277,
            160,1243,35,1021,32,4949,4990,27,30,31,
            1030,1171,373,28,3063,3552,2750,477,2864,491,
            2731,35,563,2861,2874,2912,759,35,431,367,
            1488,384,2905,2914,2975,159,166,3094,35,1021,
            32,672,3001,27,30,31,1030,1171,26,28,
            986,294,25,23,50,1182,104,75,76,106,
            1258,1284,1281,2816,70,2256,160,405,1917,2489,
            572,2626,2581,353,2260,355,4473,348,1954,1229,
            3541,328,2750,2322,2864,1752,415,56,1488,2861,
            3613,2912,5852,1929,87,1765,410,100,2905,2914,
            2975,159,165,3094,35,1021,32,672,2185,27,
            30,31,1030,1171,26,28,986,294,25,23,
            50,1182,104,75,76,106,1258,1284,1281,2816,
            2581,2277,160,1729,35,1021,32,5073,2353,27,
            30,31,1030,1171,59,28,2418,3618,2750,330,
            2864,213,147,56,410,2861,6263,2912,2310,71,
            35,328,2007,88,2905,2914,2975,159,164,3094,
            35,1021,32,672,2450,27,30,31,1030,1171,
            26,28,986,294,25,23,50,1182,104,75,
            76,106,1258,1284,1281,2816,1427,2277,160,1729,
            35,1021,32,5073,408,27,30,31,1030,1171,
            58,28,56,2341,2750,56,2864,2802,147,1485,
            5864,2861,6301,2912,2496,71,35,328,2007,1703,
            2905,2914,2975,159,163,3094,35,1021,32,672,
            1867,27,30,31,1030,1171,26,28,986,294,
            25,23,50,1182,104,75,76,106,1258,1284,
            1281,2816,2798,2277,160,1994,35,1021,32,2663,
            369,1759,30,31,1030,1171,3082,2489,56,2341,
            2750,147,2864,6109,346,6315,2593,2861,56,2912,
            2178,6101,2007,1062,2818,1707,2905,2914,2975,159,
            162,3094,35,1021,32,672,571,27,30,31,
            1030,1171,26,28,986,294,25,23,50,1182,
            104,75,76,106,1258,1284,1281,2816,2725,333,
            160,1994,35,1021,32,364,369,2800,30,31,
            1030,1171,3362,2341,56,56,2750,1833,2864,2930,
            4307,2268,1488,2861,581,2912,1508,329,2178,1488,
            3884,1488,2905,2914,2975,159,161,3154,35,1021,
            32,672,377,27,30,31,1030,1171,26,28,
            986,294,25,23,50,1182,104,75,76,106,
            1258,1284,1281,2816,2974,753,160,253,264,2854,
            369,2581,491,2581,2006,717,2277,1904,56,3063,
            2669,3884,2750,3087,2864,1340,282,262,263,2861,
            1499,2912,2178,584,2917,2920,1896,586,2905,2914,
            2975,159,158,3214,35,1021,32,672,67,27,
            30,31,1030,1171,26,28,986,294,25,23,
            50,1182,104,75,76,106,1258,1284,1281,1346,
            3063,337,175,1331,56,1657,1587,1436,1657,994,
            1634,1704,2178,1728,174,2917,2277,2277,1019,220,
            3327,35,1021,32,672,1488,27,30,31,1030,
            1171,26,28,986,294,25,23,50,1182,104,
            75,76,106,1258,1284,1281,1346,56,66,65,
            1331,210,5133,1587,1436,1657,92,1634,1704,2178,
            3081,195,3327,35,1021,32,672,2581,27,30,
            31,1030,1171,26,28,986,294,25,23,50,
            1182,104,75,76,106,1258,1284,1281,1346,2594,
            2533,585,1331,1248,4307,1587,1436,1657,230,1634,
            1704,2927,3081,195,357,2914,4624,94,2489,2178,
            2534,744,2178,592,2277,2277,4172,2489,2277,3327,
            35,1021,32,672,1621,27,30,31,1030,1171,
            26,28,986,294,25,23,50,1182,104,75,
            76,106,1258,1284,1281,1346,64,1895,229,1331,
            55,336,1587,1436,1657,835,1634,1704,2277,3081,
            195,3327,35,1021,32,672,458,27,30,31,
            1030,1171,26,28,986,294,25,23,50,1182,
            104,75,76,106,1258,1284,1281,1346,338,2492,
            54,1331,394,2564,1587,1436,1657,417,1634,1704,
            3062,3081,195,1486,2290,2018,1011,3085,3174,3175,
            2178,2178,589,743,71,35,1822,423,3327,35,
            1021,32,672,327,27,30,31,1030,1171,26,
            28,986,294,25,23,50,1182,104,75,76,
            106,1258,1284,1281,1346,49,915,925,1331,233,
            231,1587,1436,1657,2045,1634,1704,46,3081,195,
            3486,35,1021,32,672,457,27,30,31,1030,
            1171,26,28,986,294,25,23,50,1182,104,
            75,76,106,1258,1284,1281,1346,2023,2542,2010,
            1331,577,3345,1587,1436,1657,2486,1634,1704,2179,
            3081,195,1922,2494,2389,757,2528,2011,1492,35,
            3454,32,4949,4990,27,30,31,1030,1171,373,
            28,141,460,2905,35,1021,32,672,598,27,
            30,31,1030,1171,26,28,986,294,25,23,
            50,1182,104,75,76,106,1258,1284,1281,2816,
            377,187,2878,264,2945,2490,2595,2601,264,1813,
            2003,35,1822,423,3605,2276,386,2706,3170,3003,
            1206,285,262,263,1663,1508,276,262,263,3884,
            353,2260,355,717,348,1954,378,650,648,383,
            2628,306,2178,191,2277,2277,576,1755,2277,3327,
            35,1021,32,672,1812,27,30,31,1030,1171,
            26,28,986,294,25,23,50,1182,104,75,
            76,106,1258,1284,1281,1346,356,99,3063,1331,
            2722,332,1587,1436,1657,651,1634,2603,3433,35,
            1021,32,672,366,27,30,31,1030,1171,26,
            28,986,294,25,23,50,1182,104,75,76,
            106,1258,1284,1281,2816,2277,3176,2566,3004,2594,
            2377,2664,4307,4706,4307,71,35,1822,423,2633,
            2960,2778,2995,2750,2959,2864,1216,453,454,3452,
            2861,71,2912,2178,4172,2793,4172,2932,2277,2905,
            3274,3327,35,1021,32,672,306,27,30,31,
            1030,1171,26,28,986,294,25,23,50,1182,
            104,75,76,106,1258,1284,1281,1346,2178,2178,
            486,1331,5017,2961,1587,1436,1657,2416,2580,3380,
            35,1021,32,672,2277,27,30,31,1030,1171,
            26,28,986,294,25,23,50,1182,104,75,
            76,106,1258,1284,1281,2816,1218,254,224,590,
            395,3064,394,1292,3006,3059,412,2881,2962,3117,
            3124,308,3176,3092,2750,3183,2864,3368,3174,3175,
            2277,2861,87,2912,3086,3380,35,1021,32,672,
            3269,27,30,31,1030,1171,26,28,986,294,
            25,23,50,1182,104,75,76,106,1258,1284,
            1281,2816,4982,3118,71,35,1822,423,3119,2092,
            3120,1362,3147,1508,173,3212,2998,3884,3177,1637,
            2750,3178,2864,3236,1851,3449,2277,2861,3237,3261,
            3380,35,1021,32,672,306,27,30,31,1030,
            1171,26,28,986,294,25,23,50,1182,104,
            75,76,106,1258,1284,1281,2816,2966,5044,2958,
            264,6892,6892,6892,6892,6892,3063,6892,6892,6892,
            6892,6892,6892,6892,6892,2750,6892,2864,279,262,
            263,366,3266,3327,35,1021,32,672,6892,27,
            30,31,1030,1171,26,28,986,294,25,23,
            50,1182,104,75,76,106,1258,1284,1281,1346,
            374,4664,2277,1331,2277,2277,2486,3380,35,1021,
            32,672,2277,27,30,31,1030,1171,26,28,
            986,294,25,23,50,1182,104,75,76,106,
            1258,1284,1281,2816,5175,6892,2871,2995,6892,6892,
            6892,6892,6892,6892,3499,6892,6892,6892,6892,6892,
            6892,6892,2750,322,3217,3327,35,1021,32,672,
            6892,27,30,31,1030,1171,26,28,986,294,
            25,23,50,1182,104,75,76,106,1258,1284,
            1281,1346,2408,3450,6892,2534,3327,35,1021,32,
            672,6892,27,30,31,1030,1171,26,28,986,
            294,25,23,50,1182,104,75,76,106,1258,
            1284,1281,1346,6892,6892,6892,2552,3380,35,1021,
            32,672,6892,27,30,31,1030,1171,26,28,
            986,294,25,23,50,1182,104,75,76,106,
            1258,1284,1281,2816,1258,35,1021,32,5184,4990,
            27,30,31,1030,1171,373,28,3380,35,1021,
            32,672,3224,27,30,31,1030,1171,26,28,
            986,294,25,23,50,1182,104,75,76,106,
            1258,1284,1281,2816,71,35,1822,423,6892,6892,
            2776,2277,6892,6892,6892,4484,6892,3063,71,35,
            1822,423,3258,71,35,1822,423,6892,6892,6892,
            6892,6892,366,2181,6892,49,353,2260,355,6892,
            348,1954,385,5305,2783,6892,6892,1775,863,487,
            6892,6892,6892,347,469,6892,6892,3327,35,1021,
            32,672,4422,27,30,31,1030,1171,26,28,
            986,294,25,23,50,1182,104,75,76,106,
            1258,1284,1281,2272,264,6892,6892,6892,2180,386,
            6892,6892,6892,1206,6892,264,6892,6892,71,35,
            1822,423,282,262,263,340,344,2593,6892,378,
            650,648,383,568,262,263,187,6892,6892,2509,
            6892,6892,6892,6892,3181,6892,6892,232,2868,468,
            3327,35,1021,32,672,3549,27,30,31,1030,
            1171,26,28,986,294,25,23,50,1182,104,
            75,76,106,1258,1284,1281,2313,3327,35,1021,
            32,672,6892,27,30,31,1030,1171,26,28,
            986,294,25,23,50,1182,104,75,76,106,
            1258,1284,1281,2342,3327,35,1021,32,672,6892,
            27,30,31,1030,1171,26,28,986,294,25,
            23,50,1182,104,75,76,106,1258,1284,1281,
            2354,3327,35,1021,32,672,6892,27,30,31,
            1030,1171,26,28,986,294,25,23,50,1182,
            104,75,76,106,1258,1284,1281,3182,3327,35,
            1021,32,672,6892,27,30,31,1030,1171,26,
            28,986,294,25,23,50,1182,104,75,76,
            106,1258,1284,1281,3183,3327,35,1021,32,672,
            6892,27,30,31,1030,1171,26,28,986,294,
            25,23,50,1182,104,75,76,106,1258,1284,
            1281,3216,1339,35,1021,32,4949,3603,27,30,
            31,1030,1171,373,28,3327,35,1021,32,672,
            6892,27,30,31,1030,1171,26,28,986,294,
            25,23,50,1182,104,75,76,106,1258,1284,
            1281,3259,6892,6892,6892,3759,35,1021,32,4949,
            6202,27,30,31,1030,1171,373,28,6892,1220,
            35,3454,32,5184,4990,27,30,31,1030,1171,
            373,28,6892,6892,353,2260,355,385,348,1954,
            6892,386,243,35,1822,423,6892,6892,6892,6892,
            6892,3327,71,35,1822,423,6892,6892,6892,6892,
            2276,378,650,648,383,1206,6892,6892,6892,6892,
            6892,3326,3063,49,6892,6892,6892,353,2260,355,
            6892,348,1954,467,386,1775,3075,366,191,6892,
            6892,353,2260,355,3364,348,1954,3539,35,1822,
            423,4252,6892,6892,378,650,648,383,1755,3445,
            269,294,6892,6892,2509,6892,6892,4422,71,35,
            1822,423,6892,3327,35,1021,32,672,306,27,
            30,31,1030,1171,26,28,986,294,25,23,
            50,1182,104,75,76,106,1258,2130,264,49,
            6892,1734,6892,6892,6892,5314,6892,6892,6892,6892,
            6892,1775,1100,6892,400,3088,267,262,263,3327,
            35,1021,32,672,6892,27,30,31,1030,1171,
            26,28,986,294,25,23,50,1182,104,75,
            76,106,1258,1284,2450,6892,6892,6892,452,454,
            3452,2276,6892,307,6892,6892,1206,274,277,280,
            821,1132,1385,35,1021,32,5184,6892,27,30,
            31,1030,1171,373,28,1377,6892,6892,6892,191,
            908,2263,2395,2857,5962,283,3327,35,1021,32,
            672,6892,27,30,31,1030,1171,26,28,986,
            294,25,23,50,1182,104,75,76,106,1258,
            1284,2461,3272,259,6892,3063,1903,6892,598,6892,
            6892,6892,6892,6892,2260,6892,6892,56,3884,4307,
            367,6892,4307,6892,353,2260,355,6892,351,1954,
            260,187,2027,35,1822,423,6892,6892,2292,2982,
            6892,4172,211,1206,377,2581,3128,6892,6892,6892,
            6892,235,247,652,6892,6892,6892,6892,234,244,
            245,246,248,49,6892,1,187,3063,6892,200,
            598,6892,6892,465,596,1775,1136,717,6892,2095,
            6892,199,366,6892,4307,214,198,201,202,203,
            204,205,260,187,71,35,1822,423,1916,3445,
            56,2982,6892,6892,211,1206,377,2581,6892,6892,
            6892,6892,4706,235,247,652,6892,394,6892,6892,
            234,244,245,246,248,49,6892,6892,187,6892,
            6892,200,2707,3174,3175,6892,1813,1775,645,1088,
            6892,6892,6892,199,6892,212,6892,215,198,201,
            202,203,204,205,1416,35,1021,32,4949,3603,
            27,30,31,1030,1171,373,28,3327,35,1021,
            32,672,6892,27,30,31,1030,1171,26,28,
            986,294,25,23,50,1182,104,75,76,106,
            1258,2149,6892,6892,1770,35,1021,32,5184,4535,
            27,30,31,1030,1171,373,28,1385,35,1021,
            32,5184,6892,27,30,31,1030,1171,373,28,
            2276,6892,6892,6892,6892,1206,353,2260,355,603,
            348,1954,6892,386,6892,6892,2126,6892,6892,6892,
            3884,6892,6892,587,6892,6892,56,3063,191,6892,
            6892,1206,6892,378,650,648,383,6892,6892,6892,
            3063,6892,367,588,345,6892,353,2260,355,598,
            349,1954,1419,386,187,367,6892,6892,6892,353,
            2260,355,1477,349,1954,6892,6892,6892,6892,3063,
            6892,260,187,380,650,648,383,2775,6892,6892,
            2982,6892,4307,211,367,6892,2581,6892,6892,6892,
            6892,6892,235,247,652,386,6892,6892,6892,234,
            244,245,246,248,377,3365,431,6892,2180,591,
            200,598,6892,598,6892,380,650,648,383,6892,
            6892,6892,199,6892,6892,6892,3606,198,201,202,
            203,204,205,260,187,3017,187,717,329,35,
            1822,423,2982,6892,2982,211,6892,211,2581,6892,
            6892,6892,6892,6892,235,247,652,6892,594,6892,
            6892,234,244,245,246,248,6892,6892,517,49,
            6892,6892,200,598,6892,6892,6892,329,35,1822,
            423,1775,2050,6892,199,6892,227,6892,209,198,
            201,202,203,204,205,260,187,243,35,1822,
            423,6892,6892,6892,2982,3330,2822,211,49,56,
            2581,4307,6892,6892,1206,6892,235,247,652,6892,
            1775,47,6892,234,244,245,246,248,49,6892,
            603,6892,6892,4172,200,598,6892,187,6892,6892,
            1775,47,6892,6892,2047,2595,199,6892,6892,6892,
            207,198,201,202,203,204,205,260,187,243,
            35,1822,423,56,1530,6892,2982,6892,1206,211,
            6892,6892,2581,6892,6892,6892,6892,6892,235,247,
            652,6892,6892,6892,6892,234,244,245,246,248,
            49,187,689,3507,6892,6892,200,598,6892,2916,
            1508,6892,1775,2397,3884,6892,5858,228,199,540,
            6892,6892,208,198,201,202,203,204,205,260,
            187,329,35,1822,423,6892,3594,3508,2982,6892,
            6892,211,1206,56,2581,6892,6892,6892,1206,6892,
            235,247,652,6892,6892,6892,6892,234,244,245,
            246,248,49,3063,775,187,538,539,200,598,
            6892,187,6892,193,1775,47,6892,6892,366,2986,
            199,6892,6892,6892,218,198,201,202,203,204,
            205,260,187,71,35,1822,423,56,2841,56,
            2982,6892,1206,211,1206,6892,2581,6892,4677,6892,
            6892,56,235,247,652,6892,4307,6892,6892,234,
            244,245,246,248,49,187,6892,187,6892,6892,
            200,6892,6892,2987,6892,3084,1775,958,377,6892,
            6892,6892,199,6892,6892,6892,3647,198,201,202,
            203,204,205,2382,35,1021,32,4949,4990,27,
            30,31,1030,1171,373,28,3327,35,1021,32,
            672,717,27,30,31,1030,1171,26,28,986,
            294,25,23,50,1182,104,75,76,106,2208,
            6892,6892,1943,2276,6892,861,6892,6892,1206,6892,
            598,6892,6892,6892,243,35,1822,423,6892,6892,
            6892,6892,6892,6892,6892,71,35,1822,423,6892,
            6892,191,260,187,6892,353,2260,355,56,348,
            1954,2982,3891,598,211,49,6892,2581,6892,6892,
            6892,6892,347,235,247,652,49,1775,1487,6892,
            234,244,245,246,248,377,187,6892,1775,2530,
            6892,200,6892,947,1813,56,6892,6892,598,6892,
            1206,3594,6892,199,6892,6892,6892,223,198,201,
            202,203,204,205,71,35,1822,423,717,6892,
            260,187,6892,187,340,344,2593,6892,3468,2982,
            6892,3273,211,56,6892,2581,6892,6892,1206,1812,
            6892,235,247,652,6892,49,6892,3498,234,244,
            245,246,248,6892,3549,1033,6892,1775,2245,200,
            598,187,6892,6892,243,35,1822,423,6892,1574,
            6892,199,6892,6892,6892,217,198,201,202,203,
            204,205,260,187,6892,6892,6892,56,6892,6892,
            6892,2982,1206,6892,211,49,6892,2581,6892,6892,
            6892,6892,6892,235,247,652,6892,1775,47,6892,
            234,244,245,246,248,187,6892,6892,6892,6892,
            6892,200,6892,3712,6892,6892,6892,6892,6892,6892,
            6892,640,6892,199,6892,6892,6892,226,198,201,
            202,203,204,205,3327,35,1021,32,672,6892,
            27,30,31,1030,1171,26,28,986,294,25,
            23,50,1182,104,75,76,106,2222,3327,35,
            1021,32,672,6892,27,30,31,1030,1171,26,
            28,986,294,25,23,50,1182,104,75,76,
            106,2265,3638,35,552,6892,6892,6892,6892,6892,
            6892,6892,6892,6892,6892,269,294,3327,35,1021,
            32,672,6892,27,30,31,1030,1171,26,28,
            986,294,25,23,50,1182,104,75,76,84,
            6892,6892,6892,6892,6892,6892,6892,6892,3327,1849,
            1021,1869,672,264,27,30,31,1030,1171,26,
            28,986,294,25,23,50,1182,104,75,76,
            83,267,262,263,3327,35,1021,32,672,6892,
            27,30,31,1030,1171,26,28,986,294,25,
            23,50,1182,104,75,76,82,6892,6892,6892,
            6892,6892,6892,6892,6892,6892,6892,6892,6892,6892,
            6892,6892,274,277,280,821,1132,6892,6892,6892,
            6892,6892,6892,6892,6892,6892,6892,6892,6892,6892,
            6892,6892,6892,6892,6892,2197,3277,3599,3913,6162,
            3327,35,1021,32,672,6892,27,30,31,1030,
            1171,26,28,986,294,25,23,50,1182,104,
            75,76,81,3327,35,1021,32,672,6892,27,
            30,31,1030,1171,26,28,986,294,25,23,
            50,1182,104,75,76,80,6892,6892,6892,6892,
            561,562,566,3327,35,1021,32,672,6892,27,
            30,31,1030,1171,26,28,986,294,25,23,
            50,1182,104,75,76,79,3924,3327,35,1021,
            32,672,6892,27,30,31,1030,1171,26,28,
            986,294,25,23,50,1182,104,75,76,78,
            3327,35,1021,32,672,6892,27,30,31,1030,
            1171,26,28,986,294,25,23,50,1182,104,
            75,76,77,3033,35,1021,32,672,6892,27,
            30,31,1030,1171,26,28,986,294,25,23,
            50,1182,104,75,76,102,3327,35,1021,32,
            672,6892,27,30,31,1030,1171,26,28,986,
            294,25,23,50,1182,104,75,76,108,3327,
            35,1021,32,672,6892,27,30,31,1030,1171,
            26,28,986,294,25,23,50,1182,104,75,
            76,107,3327,35,1021,32,672,6892,27,30,
            31,1030,1171,26,28,986,294,25,23,50,
            1182,104,75,76,105,3327,35,1021,32,672,
            6892,27,30,31,1030,1171,26,28,986,294,
            25,23,50,1182,104,75,76,103,3274,35,
            1021,32,672,6892,27,30,31,1030,1171,26,
            28,986,294,25,23,50,1182,85,75,76,
            1603,6892,6892,6892,56,4307,6892,6892,6892,4307,
            6892,6892,1870,6892,6892,6892,6892,4307,2182,6892,
            6892,6892,6892,598,1959,6892,6892,260,6892,4307,
            6892,377,243,35,1822,423,6892,6892,2700,260,
            6892,6892,6892,4307,6892,377,187,6892,237,247,
            652,260,6892,6892,219,236,244,245,246,248,
            237,247,652,49,717,377,6892,236,244,245,
            246,248,237,247,652,1775,47,6892,2511,236,
            244,245,246,248,6892,1956,6892,6892,6892,6892,
            238,240,242,3324,6892,249,239,241,3071,3898,
            6892,6892,238,240,242,3324,6892,249,239,241,
            6892,6892,6892,6892,238,240,242,3324,6892,249,
            239,241,3589,35,1822,423,4252,6892,2048,6892,
            2579,6892,6089,4307,221,270,294,6892,6892,6892,
            6892,6892,2787,56,6089,6892,6892,6892,598,6892,
            6892,6892,6892,306,3078,260,6089,2315,35,1021,
            32,4949,4229,27,30,31,1030,1171,373,28,
            377,187,6892,264,6892,6892,237,247,652,219,
            6892,6892,6892,236,244,245,246,248,6892,1692,
            6892,268,262,263,4307,6892,438,6892,6892,2822,
            6892,6892,6892,2511,4307,6892,6892,6892,6892,6892,
            6892,6892,6892,6892,6892,3463,260,6892,238,240,
            242,3324,6892,580,239,241,4172,6892,307,350,
            3441,355,275,278,281,821,1132,237,247,652,
            6892,6892,6892,6892,236,244,245,246,248,1781,
            6892,6892,6892,3705,4307,6892,6892,6892,6892,3560,
            284,2137,6892,6892,6892,6892,4307,6892,6892,2882,
            243,35,1822,423,4307,6892,260,6892,6892,238,
            240,242,3324,6892,579,239,241,6892,260,6892,
            6892,6892,6892,6892,6892,6892,4172,237,247,652,
            6892,49,540,6892,236,244,245,246,248,237,
            247,652,6892,1775,47,6892,236,244,245,246,
            248,2226,3687,35,552,6892,4307,6892,6892,1797,
            6892,6892,6892,6892,6892,270,294,3903,6892,238,
            240,242,3324,6892,250,239,241,6892,260,537,
            539,238,240,242,3324,1179,339,239,241,5264,
            4307,6892,2260,6892,6892,6892,3884,4307,6892,237,
            247,652,540,264,6892,6892,236,244,245,246,
            248,6892,260,6892,6892,6892,3543,6892,6892,4172,
            6892,268,262,263,1296,6892,6892,6892,5264,4307,
            6892,6892,6892,983,442,5997,2271,35,1822,423,
            6892,238,240,242,3324,3063,534,239,241,537,
            539,260,6892,243,35,1822,423,6892,6892,6892,
            366,6892,275,278,281,821,1132,49,6892,6892,
            6892,6892,983,442,5997,443,444,445,3324,1775,
            47,6892,6892,6892,49,6892,3601,6892,6892,6892,
            4664,243,35,1822,423,394,1775,47,6892,56,
            3276,6892,6892,2669,4307,2459,35,1822,423,6892,
            2707,3174,3175,6892,443,444,445,3324,56,6892,
            3978,6892,49,598,56,6892,377,6892,56,598,
            6892,6892,6892,4307,1775,47,49,6892,56,3276,
            561,562,567,4307,6892,377,187,6892,1775,47,
            6892,377,187,6892,219,377,56,6892,4262,717,
            219,4307,446,448,6892,377,6892,6892,6892,6892,
            6892,6892,2735,6892,6892,6892,6892,6892,2511,6892,
            2773,6892,6892,377,2511,6892,6892,6892,717,1909,
            6892,6892,6234,6892,6892,6892,6892,6892,717,6892,
            6892,446,449,6892,6892,6892,6892,6892,6892,544,
            6892,6892,6892,6892,6892,6892,717,6892,6892,542,
            6892,6892,6892,6892,6892,6892,6892,6892,6892,6892,
            6892,6892,6892,6892,3616,6892,6892,595,6892,6892,
            3702,6892,0,39,6907,0,39,6906,0,713,
            29,0,475,886,0,489,1280,0,38,809,
            0,38,6907,0,38,6906,0,4037,124,0,
            1,479,0,493,866,0,492,1372,0,1465,
            89,0,713,422,0,35,33,0,32,34,
            0,39,809,0,1,626,0,1,7197,0,
            1,7196,0,1,7195,0,1,7194,0,1,
            7193,0,1,7192,0,1,7191,0,1,7190,
            0,1,7189,0,1,7188,0,1,7187,0,
            39,1,6907,0,39,1,6906,0,316,429,
            0,316,321,0,7158,273,0,7157,273,0,
            7264,273,0,7263,273,0,7185,273,0,7184,
            273,0,7183,273,0,7182,273,0,7181,273,
            0,7180,273,0,7179,273,0,7178,273,0,
            7197,273,0,7196,273,0,7195,273,0,7194,
            273,0,7193,273,0,7192,273,0,7191,273,
            0,7190,273,0,7189,273,0,7188,273,0,
            7187,273,0,39,6907,273,0,39,6906,273,
            0,6930,273,0,6907,48,0,6906,48,0,
            6898,1,0,6897,1,0,1415,269,0,32,
            423,0,29,422,0,43,6928,0,43,37,
            0,4037,126,0,4037,125,0,1,5818,0,
            1,5457,0,1,5514,0,1,5580,0,1,
            5603,0,1,5633,0,1,5657,0,1,5680,
            0,1041,1,0,1,2316,0,1,5488,0,
            1,6914,0,1,6913,0,1,6912,0,1,
            6911,0,1,6910,0,1,6909,0,1,6908,
            0,1,637,0,1,670,0,1,814,0,
            1,835,0,1,873,0,1,3293,0,39,
            1,0,365,480,0,6930,1,0,47,37,
            0,1,90,0,6907,273,0,6906,273,0,
            536,3322,0,6930,1,261,0,39,1,261,
            0,261,451,0,6907,37,0,6906,37,0,
            6907,2,37,0,6906,2,37,0,6907,36,
            0,6906,36,0,6928,45,0,37,45,0,
            6902,440,0,6901,440,0,1,2379,0,1,
            809,0,261,450,0,1856,352,0,365,93,
            0,35,72,0,1,365,0,4270,311,0,
            536,6029,0,1,261,0,261,252,0,1,
            2000,0,1,2404,0,261,251,0,6904,1,
            0,6900,1,0,1,261,3555,0,6901,261,
            0,3562,261,0,6904,418,0,6903,418,0,
            3604,261,0,10,12,0,8,10,12,0,
            3611,225,0,216,5243,0,3649,418,0,8,
            12,0
        };
    };
    public final static char baseAction[] = BaseAction.baseAction;
    @Override
    public final int baseAction(int index) { return baseAction[index]; }
    public final static char lhs[] = baseAction;
    @Override
    public final int lhs(int index) { return lhs[index]; };

    public interface TermCheck {
        public final static byte termCheck[] = {0,
            0,1,2,3,4,5,6,7,8,9,
            10,11,12,13,14,15,16,17,18,19,
            20,21,22,23,24,25,26,27,28,29,
            30,31,32,33,34,35,36,37,38,39,
            40,41,42,43,44,45,46,47,48,49,
            50,51,52,53,0,0,56,57,58,59,
            0,61,62,63,0,65,66,67,0,69,
            0,1,2,73,74,75,76,77,78,79,
            80,81,82,83,84,85,0,1,2,3,
            4,5,6,7,8,9,10,11,12,13,
            14,15,16,17,18,19,20,21,22,23,
            24,25,26,27,28,29,30,31,32,33,
            34,35,36,37,38,39,40,41,42,43,
            44,45,46,47,48,49,50,51,52,53,
            86,87,56,57,58,59,0,61,62,63,
            4,65,66,67,94,69,92,93,0,73,
            74,75,76,77,78,79,80,81,82,83,
            84,85,0,1,2,3,4,5,6,7,
            8,9,10,11,12,13,14,15,16,17,
            18,19,20,21,22,23,24,25,26,27,
            28,29,30,31,32,33,34,35,36,37,
            38,39,40,41,42,43,44,45,46,47,
            48,49,50,51,52,53,0,0,56,57,
            58,59,0,61,62,63,4,65,66,67,
            0,69,0,1,2,73,74,75,76,77,
            78,79,80,81,82,83,84,85,0,1,
            2,3,4,5,6,7,8,9,10,11,
            12,13,14,15,16,17,18,19,20,21,
            22,23,24,25,26,27,28,29,30,31,
            32,33,34,35,36,37,38,39,40,41,
            42,43,44,45,46,47,48,49,50,51,
            52,53,86,87,56,57,58,59,0,61,
            62,63,95,65,66,67,0,69,0,1,
            2,0,74,75,76,77,78,79,80,81,
            82,83,84,85,0,1,2,3,4,5,
            6,7,8,9,10,11,12,13,14,15,
            16,17,18,19,20,21,22,23,24,25,
            26,27,28,29,30,31,32,33,34,35,
            36,37,38,39,40,41,42,43,44,45,
            46,47,48,49,50,51,52,53,0,68,
            56,57,58,59,0,61,62,63,0,65,
            66,67,0,69,0,3,0,0,74,75,
            76,77,78,79,80,81,82,83,84,85,
            0,1,2,3,4,5,6,7,8,9,
            10,11,12,13,14,15,16,17,18,19,
            20,21,22,23,24,25,26,27,28,29,
            30,31,32,33,34,35,36,37,38,39,
            40,41,42,43,44,45,46,47,48,49,
            50,51,52,53,86,87,56,57,58,59,
            0,61,62,63,0,65,66,67,94,69,
            86,87,86,87,74,75,76,77,78,79,
            80,81,82,83,84,85,0,1,2,3,
            4,5,6,7,8,9,10,11,12,13,
            14,15,16,17,18,19,20,21,22,23,
            24,25,26,27,28,29,30,31,32,33,
            34,35,36,37,38,39,40,41,42,43,
            44,45,46,47,48,49,50,51,52,53,
            0,0,56,57,58,59,0,61,62,63,
            0,65,66,67,94,69,92,93,0,0,
            74,75,76,77,78,79,80,81,82,83,
            84,85,0,1,2,3,4,5,6,7,
            8,9,10,11,12,13,14,15,16,17,
            18,19,20,21,22,23,24,25,26,27,
            28,29,30,31,32,33,34,35,36,37,
            38,39,40,41,42,43,44,45,46,47,
            48,49,50,51,52,53,86,87,56,57,
            58,59,0,61,62,63,95,65,66,67,
            94,69,92,93,86,87,74,75,76,77,
            78,79,80,81,82,83,84,85,0,1,
            2,3,4,5,6,7,8,9,10,11,
            12,13,14,15,16,17,18,19,20,21,
            22,23,24,25,26,27,28,29,30,31,
            32,33,34,35,36,37,38,39,40,41,
            42,43,44,45,46,47,48,49,50,51,
            52,53,0,0,56,57,58,59,0,61,
            62,63,0,65,66,67,0,69,0,1,
            2,5,74,75,76,77,78,79,80,81,
            82,83,84,85,0,1,2,3,4,5,
            6,7,8,9,10,11,12,13,14,15,
            16,17,18,19,20,21,22,23,24,25,
            26,27,28,29,30,31,32,33,34,35,
            36,37,38,39,40,41,42,43,44,45,
            46,47,48,49,50,51,52,53,86,87,
            56,57,58,59,0,61,62,63,4,65,
            66,67,0,69,101,102,4,95,74,75,
            76,77,78,79,80,81,82,83,84,85,
            0,1,2,3,4,5,6,7,8,9,
            10,11,12,13,14,15,16,17,18,19,
            20,21,22,23,24,25,26,27,28,29,
            30,31,32,33,34,35,36,37,38,39,
            40,41,42,43,44,45,46,47,48,49,
            50,51,52,53,0,0,56,57,58,59,
            0,61,62,63,0,65,66,67,0,69,
            0,1,2,0,74,75,76,77,78,79,
            80,81,82,83,84,85,0,1,2,3,
            4,5,6,7,8,9,10,11,12,13,
            14,15,16,17,18,19,20,21,22,23,
            24,25,26,27,28,29,30,31,32,33,
            34,35,36,37,38,39,40,41,42,43,
            44,45,46,47,48,49,50,51,52,53,
            86,87,56,57,58,59,0,61,62,63,
            0,65,66,67,4,69,92,93,0,0,
            74,75,76,77,78,79,80,81,82,83,
            84,85,0,1,2,3,4,5,6,7,
            8,9,10,11,12,13,14,15,16,17,
            18,19,20,21,22,23,24,25,26,27,
            28,29,30,31,32,33,34,35,36,37,
            38,39,40,41,42,43,44,45,46,47,
            48,49,50,51,52,53,68,0,56,57,
            58,59,0,61,62,63,9,65,66,67,
            0,69,96,0,1,2,74,75,76,77,
            78,79,80,81,82,83,84,85,0,1,
            2,3,4,5,6,7,8,40,10,11,
            12,13,14,15,16,17,18,19,20,21,
            22,23,24,25,26,27,28,29,30,31,
            32,33,34,35,36,37,38,39,55,41,
            42,43,44,45,46,47,48,49,50,51,
            52,53,0,0,56,57,58,59,0,1,
            2,3,4,5,6,7,8,9,10,11,
            12,13,14,15,16,17,18,19,20,21,
            22,23,24,25,26,27,28,29,30,31,
            32,33,0,1,2,0,4,0,40,0,
            1,2,3,4,5,6,7,8,0,1,
            2,53,0,55,56,57,58,5,0,61,
            62,63,0,1,2,3,4,0,6,71,
            8,73,5,38,7,38,0,0,1,2,
            3,4,5,6,7,8,88,11,12,13,
            14,15,16,17,18,19,20,21,22,23,
            24,25,26,27,28,29,30,31,32,33,
            71,0,114,115,116,0,1,2,3,4,
            5,6,7,8,9,10,11,12,13,14,
            15,16,17,18,19,20,21,22,23,24,
            25,26,27,28,29,30,31,32,33,91,
            0,99,100,0,0,40,98,0,0,1,
            2,3,4,5,6,7,8,0,53,0,
            55,56,57,58,0,64,61,62,63,68,
            0,0,0,3,0,5,71,7,73,9,
            6,22,23,24,25,26,27,28,29,30,
            31,32,33,88,0,1,2,3,4,55,
            6,54,8,0,34,35,36,37,60,0,
            40,64,3,70,0,1,2,60,70,114,
            115,116,0,9,54,0,1,2,3,4,
            60,6,0,8,64,64,89,90,68,68,
            70,71,72,73,101,102,103,104,105,106,
            107,108,109,110,111,112,86,87,0,89,
            90,91,92,93,94,95,96,97,98,99,
            100,101,102,103,104,105,106,107,108,109,
            110,111,112,69,120,60,64,117,118,119,
            120,0,34,35,3,0,5,0,7,4,
            9,0,1,2,3,4,9,6,0,8,
            0,0,1,2,3,4,5,0,7,0,
            10,4,5,91,7,34,35,36,37,0,
            98,40,3,22,23,24,25,26,27,28,
            29,30,31,32,33,54,0,1,2,54,
            4,60,0,1,2,64,4,0,6,68,
            8,70,71,72,73,0,69,59,0,1,
            2,60,71,54,6,64,8,86,87,68,
            89,90,91,92,93,94,95,96,97,98,
            99,100,101,102,103,104,105,106,107,108,
            109,110,111,112,0,1,2,55,117,118,
            119,120,0,1,2,3,4,5,6,7,
            8,9,10,11,12,13,14,15,16,17,
            18,19,20,21,22,23,24,25,26,27,
            28,29,30,31,32,33,0,0,1,2,
            3,4,40,6,0,8,0,1,2,55,
            4,5,0,7,0,53,0,55,56,57,
            58,0,0,61,62,63,4,65,7,114,
            115,116,0,1,2,73,22,23,24,25,
            26,27,28,29,30,31,32,33,0,53,
            88,0,1,2,3,4,5,6,7,8,
            9,10,11,12,13,14,15,16,17,18,
            19,20,21,22,23,24,25,26,27,28,
            29,30,31,32,33,0,70,0,0,1,
            2,40,4,0,6,91,8,4,66,67,
            0,0,98,91,53,54,55,56,57,58,
            98,0,61,62,63,22,65,101,102,103,
            104,105,106,107,108,109,110,111,112,0,
            1,2,3,4,5,6,7,8,38,88,
            0,1,2,3,4,5,6,7,8,9,
            10,11,12,13,14,15,16,17,18,19,
            20,21,22,23,24,25,26,27,28,29,
            30,31,32,33,0,1,2,0,4,5,
            40,7,71,0,1,2,9,4,5,60,
            7,0,0,53,3,55,56,57,58,0,
            113,61,62,63,0,65,0,114,115,116,
            0,1,2,73,22,23,24,25,26,27,
            28,29,30,31,32,33,0,0,88,0,
            1,2,3,4,5,6,7,8,9,10,
            11,12,13,14,15,16,17,18,19,20,
            21,22,23,24,25,26,27,28,29,30,
            31,32,33,0,1,2,60,4,5,40,
            7,0,1,2,0,4,0,6,4,8,
            54,0,53,7,55,56,57,58,0,0,
            61,62,63,0,65,118,22,0,1,2,
            0,4,73,22,23,24,25,26,27,28,
            29,30,31,32,33,89,90,88,0,1,
            2,3,4,5,6,7,8,9,10,11,
            12,13,14,15,16,17,18,19,20,21,
            22,23,24,25,26,27,28,29,30,31,
            32,33,55,0,1,2,0,64,40,6,
            60,8,0,1,2,0,0,0,6,0,
            0,53,5,55,56,57,58,0,9,61,
            62,63,0,65,96,3,0,1,2,23,
            24,73,22,23,24,25,26,27,28,29,
            30,31,32,33,0,0,88,0,1,2,
            3,4,5,6,7,8,9,10,11,12,
            13,14,15,16,17,18,19,20,21,22,
            23,24,25,26,27,28,29,30,31,32,
            33,72,60,0,0,68,64,40,5,0,
            68,0,66,67,0,86,87,3,54,54,
            53,96,55,56,57,58,99,100,61,62,
            63,0,65,22,23,24,25,26,27,28,
            29,30,31,32,33,0,1,2,3,4,
            5,0,7,89,90,88,0,1,2,3,
            4,5,6,7,8,9,10,11,12,13,
            14,15,16,17,18,19,20,21,22,23,
            24,25,26,27,28,29,30,31,32,33,
            0,1,2,0,4,64,40,0,0,0,
            0,0,99,100,0,60,9,3,9,53,
            9,55,56,57,58,64,0,61,62,63,
            0,65,22,23,24,25,26,27,28,29,
            30,31,32,33,0,1,2,40,4,40,
            6,40,8,0,88,0,1,2,3,4,
            5,6,7,8,9,10,11,12,13,14,
            15,16,17,18,19,20,21,22,23,24,
            25,26,27,28,29,30,31,32,33,0,
            1,2,0,4,5,40,7,0,9,55,
            0,1,2,95,7,0,0,54,53,0,
            55,56,57,58,9,9,61,62,63,0,
            65,0,1,2,3,4,5,6,7,8,
            0,10,11,12,13,14,15,16,17,18,
            19,20,21,88,0,1,2,3,4,0,
            6,0,8,9,3,34,35,36,37,38,
            39,72,41,42,43,44,45,46,47,48,
            49,50,51,52,0,1,2,72,72,5,
            59,0,0,62,40,3,97,66,67,0,
            1,2,3,4,5,6,7,8,0,10,
            11,12,13,14,15,16,17,18,19,20,
            21,0,1,2,3,4,97,6,0,8,
            9,70,113,34,35,36,37,38,39,55,
            41,42,43,44,45,46,47,48,49,50,
            51,52,0,1,2,0,0,0,59,0,
            3,40,54,64,9,66,67,0,1,2,
            3,4,5,6,7,8,9,10,11,12,
            13,14,15,16,17,18,19,20,21,0,
            34,35,3,34,35,0,1,2,0,1,
            2,34,35,36,37,38,39,55,41,42,
            43,44,45,46,47,48,49,50,51,52,
            0,1,2,68,96,0,59,72,0,0,
            0,0,7,0,3,0,69,9,9,9,
            73,0,1,2,3,4,5,6,7,8,
            55,10,11,12,13,14,15,16,17,18,
            19,20,21,0,1,2,0,0,0,6,
            40,0,0,0,3,34,35,36,37,38,
            39,0,41,42,43,44,45,46,47,48,
            49,50,51,52,0,1,2,68,68,64,
            59,73,73,0,71,0,3,66,67,0,
            1,2,3,4,5,6,7,8,55,10,
            11,12,13,14,15,16,17,18,19,20,
            21,60,0,0,0,54,64,64,71,0,
            0,9,9,34,35,36,37,38,39,55,
            41,42,43,44,45,46,47,48,49,50,
            51,52,0,1,2,0,0,0,59,3,
            89,90,0,0,9,66,67,0,1,2,
            3,4,5,6,7,8,9,10,11,12,
            13,14,15,16,17,18,19,20,21,60,
            0,69,97,0,70,72,3,0,0,0,
            70,34,35,36,37,38,39,55,41,42,
            43,44,45,46,47,48,49,50,51,52,
            97,64,0,1,2,0,59,0,73,0,
            0,0,70,3,71,0,69,0,1,2,
            3,4,5,6,7,8,9,10,11,12,
            13,14,15,16,17,18,19,20,21,60,
            0,1,2,0,74,0,3,0,5,6,
            7,34,35,36,37,38,39,55,41,42,
            43,44,45,46,47,48,49,50,51,52,
            60,0,1,2,0,60,59,34,35,36,
            37,70,39,0,0,0,69,0,3,0,
            3,113,0,9,9,55,0,54,0,54,
            0,54,0,60,0,3,97,64,10,66,
            67,68,0,70,22,23,24,25,26,27,
            28,29,30,31,32,33,55,0,54,86,
            87,0,89,90,91,92,93,94,95,96,
            0,10,99,100,101,60,103,104,105,106,
            107,108,109,110,111,112,72,72,54,61,
            117,0,1,2,3,4,5,6,7,8,
            9,10,11,12,13,14,15,16,17,18,
            19,20,21,0,53,0,55,0,0,4,
            0,0,4,3,54,34,35,36,37,38,
            39,10,41,42,43,44,45,46,47,48,
            49,50,51,52,0,1,2,3,4,5,
            6,7,8,0,10,11,12,13,14,15,
            16,17,18,19,20,21,0,54,0,54,
            113,54,54,0,53,9,55,64,34,35,
            36,37,38,39,0,41,42,43,44,45,
            46,47,48,49,50,51,52,0,0,0,
            0,0,89,90,3,0,9,0,55,118,
            66,67,0,1,2,3,4,5,6,7,
            8,0,10,11,12,13,14,15,16,17,
            18,19,20,21,0,0,68,0,72,55,
            0,0,0,0,71,0,34,35,36,37,
            38,39,54,41,42,43,44,45,46,47,
            48,49,50,51,52,0,0,68,68,71,
            73,59,0,1,2,3,4,5,6,7,
            8,0,10,11,12,13,14,15,16,17,
            18,19,20,21,54,54,54,54,0,54,
            0,0,0,0,64,71,34,35,36,37,
            38,39,75,41,42,43,44,45,46,47,
            48,49,50,51,52,0,121,0,3,89,
            90,0,60,0,1,2,3,4,5,6,
            7,8,0,10,11,12,13,14,15,16,
            17,18,19,20,21,54,0,0,0,0,
            3,3,3,0,0,64,68,34,35,36,
            37,38,39,70,41,42,43,44,45,46,
            47,48,49,50,51,52,0,0,0,3,
            89,90,59,0,1,2,3,4,5,6,
            7,8,71,10,11,12,13,14,15,16,
            17,18,19,20,21,0,0,0,54,0,
            3,0,0,0,68,0,0,34,35,36,
            37,38,39,70,41,42,43,44,45,46,
            47,48,49,50,51,52,0,0,0,0,
            0,0,59,0,1,2,3,4,5,6,
            7,8,0,10,11,12,13,14,15,16,
            17,18,19,20,21,0,0,0,0,0,
            0,0,0,0,0,70,70,34,35,36,
            37,38,39,71,41,42,43,44,45,46,
            47,48,49,50,51,52,0,0,0,0,
            0,0,59,0,1,2,3,4,5,6,
            7,8,71,10,11,12,13,14,15,16,
            17,18,19,20,21,0,0,0,0,0,
            0,0,0,0,0,70,70,34,35,36,
            37,38,39,0,41,42,43,44,45,46,
            47,48,49,50,51,52,0,1,2,3,
            4,5,6,7,8,0,10,11,12,13,
            14,15,16,17,18,19,20,21,0,0,
            0,0,0,0,0,0,0,0,0,0,
            34,35,36,37,38,39,0,41,42,43,
            44,45,46,47,48,49,50,51,52,0,
            1,2,3,4,5,6,7,8,0,10,
            11,12,13,14,15,16,17,18,19,20,
            21,0,0,0,0,0,0,0,0,0,
            0,0,0,34,35,36,37,38,39,0,
            41,42,43,44,45,46,47,48,49,50,
            51,52,0,1,2,3,4,5,6,7,
            8,0,10,11,12,13,14,15,16,17,
            18,19,20,21,0,0,0,0,0,0,
            0,0,0,0,0,0,34,35,36,37,
            38,39,0,41,42,43,44,45,46,47,
            48,49,50,51,52,0,1,2,3,4,
            5,6,7,8,0,10,11,12,13,14,
            15,16,17,18,19,20,21,0,0,0,
            0,0,0,0,0,0,9,0,0,34,
            35,36,37,38,39,0,41,42,43,44,
            45,46,47,48,49,50,51,52,0,1,
            2,0,4,0,0,0,0,0,10,11,
            12,13,14,15,16,17,18,19,20,21,
            22,23,24,25,26,27,28,29,30,31,
            32,33,0,0,0,0,0,0,0,72,
            0,0,0,0,0,0,0,0,0,1,
            2,53,4,0,56,57,58,0,10,11,
            12,13,14,15,16,17,18,19,20,21,
            22,23,24,25,26,27,28,29,30,31,
            32,33,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,1,2,
            0,53,0,0,56,57,58,10,11,12,
            13,14,15,16,17,18,19,20,21,22,
            23,24,25,26,27,28,29,30,31,32,
            33,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,1,2,0,
            53,0,0,56,57,58,10,11,12,13,
            14,15,16,17,18,19,20,21,22,23,
            24,25,26,27,28,29,30,31,32,33,
            0,0,0,0,1,2,3,4,5,6,
            7,8,9,0,0,0,0,3,0,53,
            0,0,56,57,58,22,23,24,25,26,
            27,28,29,30,31,32,33,0,0,1,
            2,3,4,40,6,0,8,9,3,0,
            36,37,0,0,9,0,0,54,0,0,
            0,0,0,60,0,1,2,3,4,5,
            6,7,8,9,60,72,0,0,0,0,
            0,0,0,0,0,0,22,23,24,25,
            26,27,28,29,30,31,32,33,60,0,
            0,0,0,0,40,60,0,0,0,64,
            72,0,0,68,0,0,0,72,0,0,
            0,0,0,0,60,0,0,0,0,0,
            0,117,0,119,0,0,72,11,12,13,
            14,15,16,17,18,19,20,21,22,23,
            24,25,26,27,28,29,30,31,32,33,
            0,1,2,3,4,5,0,7,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,22,23,24,25,26,27,28,29,
            30,31,32,33,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            60,0,0,0,64,0,0,0,68,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0
        };
    };
    public final static byte termCheck[] = TermCheck.termCheck;
    @Override
    public final int termCheck(int index) { return termCheck[index]; }

    public interface TermAction {
        public final static char termAction[] = {0,
            6892,6854,6833,6833,6833,6833,6833,6833,6833,6870,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            6858,1,1,1,1,1,1,1,1,1,
            1,1,1,1,119,1,1,1,1,1,
            131,1045,7098,2338,127,3465,1,1,365,6903,
            6892,6906,6907,6899,2869,3600,3079,3230,3029,3553,
            4734,3598,805,3593,3968,3564,10,6873,6873,6873,
            6873,6873,6873,6873,6873,6873,6873,6873,6873,6873,
            6873,6873,6873,6873,6873,6873,6873,6873,6873,6873,
            6873,6873,6873,6873,6873,6873,6873,6873,6873,6873,
            6873,6873,6873,6873,6873,6873,6873,6873,6873,6873,
            6873,6873,6873,6873,6873,6873,6873,6873,6873,6873,
            4379,4446,6873,6873,6873,6873,39,6873,6873,6873,
            6930,6873,6873,6873,1105,6873,3786,3755,430,6873,
            6873,6873,6873,6873,6873,6873,6873,6873,6873,6873,
            6873,6873,8,6876,6876,6876,6876,6876,6876,6876,
            6876,6876,6876,6876,6876,6876,6876,6876,6876,6876,
            6876,6876,6876,6876,6876,6876,6876,6876,6876,6876,
            6876,6876,6876,6876,6876,6876,6876,6876,6876,6876,
            6876,6876,6876,6876,6876,6876,6876,6876,6876,6876,
            6876,6876,6876,6876,6876,6876,123,133,6876,6876,
            6876,6876,6892,6876,6876,6876,2244,6876,6876,6876,
            331,6876,6892,6637,6634,6876,6876,6876,6876,6876,
            6876,6876,6876,6876,6876,6876,6876,6876,6892,6854,
            6833,6833,6833,6833,6833,6833,6833,6861,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,6858,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,4379,4446,1,1,1,1,419,1045,
            7098,2338,1253,3465,1,1,6892,6903,48,6637,
            6634,188,2869,3600,3079,3230,3029,3553,4734,3598,
            805,3593,3968,3564,6892,6854,6833,6833,6833,6833,
            6833,6833,6833,6861,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,6858,1,1,1,1,1,
            1,1,1,1,1,1,1,1,122,1488,
            1,1,1,1,132,1045,7098,2338,6892,3465,
            1,1,6892,6903,121,714,120,6892,2869,3600,
            3079,3230,3029,3553,4734,3598,805,3593,3968,3564,
            6892,6854,6833,6833,6833,6833,6833,6833,6833,6861,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            6858,1,1,1,1,1,1,1,1,1,
            1,1,1,1,4379,4446,1,1,1,1,
            151,1045,7098,2338,128,3465,1,1,1105,6903,
            4379,4446,4379,4446,2869,3600,3079,3230,3029,3553,
            4734,3598,805,3593,3968,3564,6892,6854,6833,6833,
            6833,6833,6833,6833,6833,6861,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,6858,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            139,134,1,1,1,1,152,1045,7098,2338,
            147,3465,1,1,3620,6903,3786,3755,143,6892,
            2869,3600,3079,3230,3029,3553,4734,3598,805,3593,
            3968,3564,6892,6854,6833,6833,6833,6833,6833,6833,
            6833,6861,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,6858,1,1,1,1,1,1,1,
            1,1,1,1,1,1,4379,4446,1,1,
            1,1,6892,1045,7098,2338,1253,3465,1,1,
            3620,6903,3857,3817,4379,4446,2869,3600,3079,3230,
            3029,3553,4734,3598,805,3593,3968,3564,6892,6854,
            6833,6833,6833,6833,6833,6833,6833,6861,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,6858,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,142,137,1,1,1,1,6892,1045,
            7098,2338,153,3465,1,1,6892,6903,432,6906,
            6907,1853,2869,3600,3079,3230,3029,3553,4734,3598,
            805,3593,3968,3564,6892,6854,6833,6833,6833,6833,
            6833,6833,6833,6861,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,6858,1,1,1,1,1,
            1,1,1,1,1,1,1,1,4379,4446,
            1,1,1,1,6892,1045,7098,2338,2318,3465,
            1,1,430,6903,3369,4899,423,3565,2869,3600,
            3079,3230,3029,3553,4734,3598,805,3593,3968,3564,
            6892,6854,6833,6833,6833,6833,6833,6833,6833,6861,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            6858,1,1,1,1,1,1,1,1,1,
            1,1,1,1,140,6892,1,1,1,1,
            6892,1045,7098,2338,148,3465,1,1,6892,6903,
            36,6791,6788,6892,2869,3600,3079,3230,3029,3553,
            4734,3598,805,3593,3968,3564,6892,6854,6833,6833,
            6833,6833,6833,6833,6833,6861,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,6858,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            4379,4446,1,1,1,1,135,1045,7098,2338,
            6892,3465,1,1,1435,6903,3857,3817,550,6892,
            2869,3600,3079,3230,3029,3553,4734,3598,805,3593,
            3968,3564,6892,3555,1,1,1,1,1,1,
            1,3562,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,6901,1,1,1,1,1,1,1,
            1,1,1,1,1,1,928,440,1,1,
            1,1,6892,1045,7098,2338,6800,3465,1,1,
            6892,6903,3471,6892,10614,10614,2869,3600,3079,3230,
            3029,3553,4734,3598,805,3593,3968,3564,39,6456,
            6453,5208,1041,5603,5488,5633,2316,6803,970,7189,
            7187,7196,7195,7191,7192,7190,7193,7194,7197,7188,
            7184,7263,7264,7178,7185,7181,7157,7183,7182,7179,
            7180,7158,5580,5514,5680,5657,6911,5457,6928,670,
            873,6913,814,5818,835,6914,6912,637,6908,6909,
            6910,7325,6892,6892,634,7326,7327,1438,6892,6767,
            6767,261,6763,261,261,261,261,6771,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,321,6551,6551,6892,316,6892,261,6892,
            6544,6540,2379,6691,6824,809,6824,2316,331,6906,
            6907,1,113,6760,1,1,1,5418,109,2200,
            7339,1393,1,6544,6540,2379,6691,6892,809,261,
            2316,451,999,2796,923,3435,255,343,6544,6540,
            2379,6691,6824,809,6824,2316,7427,7189,7187,7196,
            7195,7191,7192,7190,7193,7194,7197,7188,7184,7263,
            7264,7178,7185,7181,7157,7183,7182,7179,7180,7158,
            3032,6892,7362,7363,7364,6892,6767,6767,261,6763,
            261,261,261,261,6812,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,5726,
            6892,5394,5146,137,37,261,5749,124,401,6544,
            6540,4215,6691,1,809,1,2316,493,1,256,
            6760,1,1,1,6892,6161,2200,7339,1393,4896,
            33,6892,6892,6495,6892,6495,261,6495,450,6495,
            1480,7184,7263,7264,7178,7185,7181,7157,7183,7182,
            7179,7180,7158,7427,365,6456,6453,2379,1041,6928,
            809,4064,2316,6892,6495,6495,6495,6495,2052,6892,
            6495,6477,1415,2005,6892,6906,6907,6483,1292,7362,
            7363,7364,6892,6904,6495,1,6544,6540,4215,6691,
            6495,809,112,2316,6495,3609,4010,3937,6495,4896,
            6495,6495,6495,6495,3369,4899,1958,1911,1864,1817,
            1770,1723,1676,1629,1582,1535,6495,6495,116,6495,
            6495,6495,6495,6495,6495,6495,6495,6495,6495,6495,
            6495,6495,6495,6495,6495,6495,6495,6495,6495,6495,
            6495,6495,6495,6903,6452,2052,2618,6495,6495,6495,
            6495,6892,4637,4333,6498,431,6498,6892,6498,422,
            6498,1,6544,6540,2379,6691,6904,809,593,2316,
            335,37,6907,6907,6907,6907,6907,39,6907,6892,
            7226,6930,365,5726,365,6498,6498,6498,6498,89,
            5749,6498,6489,6907,6907,6907,6907,6907,6907,6907,
            6907,6907,6907,6907,6907,6498,6892,6456,6453,713,
            6930,6498,6892,6456,6453,6498,1041,6892,6501,6498,
            2316,6498,6498,6498,6498,474,6903,3548,38,6474,
            6471,6907,3032,2855,6468,6907,2316,6498,6498,6907,
            6498,6498,6498,6498,6498,6498,6498,6498,6498,6498,
            6498,6498,6498,6498,6498,6498,6498,6498,6498,6498,
            6498,6498,6498,6498,43,6658,6658,2643,6498,6498,
            6498,6498,6892,6833,6833,261,6833,261,261,261,
            261,6836,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,9230,
            1,1,1,1,1,1,6892,1,6544,6540,
            6806,6691,261,6809,111,6694,479,1,1,6655,
            1,6480,110,6480,257,1,157,6830,1,1,
            1,129,6892,2589,7135,2338,2443,3465,3673,7362,
            7363,7364,6892,6906,6907,252,7184,7263,7264,7178,
            7185,7181,7157,7183,7182,7179,7180,7158,6892,2536,
            7427,6892,6833,6833,261,6833,261,261,261,261,
            261,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,9230,1,
            1,1,1,1,1,6892,2811,6892,6892,6456,
            6453,261,1041,39,809,5726,2316,6930,5703,956,
            1,6892,5749,5726,1,3360,6830,1,1,1,
            5749,6892,2589,7135,2338,969,3465,3408,5245,2745,
            2679,2613,2547,2481,2415,2349,2283,2217,2151,379,
            6456,6453,4215,1041,365,809,365,2316,3456,7427,
            6892,6833,6833,261,6833,261,261,261,261,6845,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,9230,1,1,
            1,1,1,1,480,39,39,6892,6930,6742,
            261,6742,2094,90,1,1,6896,1,6751,2052,
            6751,269,258,1,6646,6830,1,1,1,6892,
            3602,2589,7135,2338,6892,3465,492,7362,7363,7364,
            325,6906,6907,251,7184,7263,7264,7178,7185,7181,
            7157,7183,7182,7179,7180,7158,144,6892,7427,6892,
            6833,6833,261,6833,261,261,261,261,6836,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,9230,1,1,1,
            1,1,1,93,39,39,6486,6930,6818,261,
            6818,6892,6456,6453,39,1041,130,809,6930,2316,
            4145,259,1,3673,6830,1,1,1,136,6892,
            2589,7135,2338,6892,3465,6895,2662,429,6548,6548,
            382,316,252,7184,7263,7264,7178,7185,7181,7157,
            7183,7182,7179,7180,7158,4118,4091,7427,6892,6833,
            6833,261,6833,261,261,261,261,6836,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,9230,1,1,1,1,
            1,1,316,6892,6906,6907,6892,2648,261,809,
            2052,2316,6892,6906,6907,155,370,115,1480,6892,
            570,1,5418,6830,1,1,1,396,6898,2589,
            7135,2338,1,3465,3471,3890,6892,6637,6634,7263,
            7264,252,7184,7263,7264,7178,7185,7181,7157,7183,
            7182,7179,7180,7158,146,6892,7427,6892,6833,6833,
            261,6833,261,261,261,261,261,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,9230,1,1,1,1,1,
            1,6897,2052,114,6892,3437,575,261,5418,6892,
            575,571,5703,956,1,4379,4446,6309,4145,4487,
            1,3509,6830,1,1,1,5394,5146,2589,7135,
            2338,6892,3465,7184,7263,7264,7178,7185,7181,7157,
            7183,7182,7179,7180,7158,379,39,39,3890,6930,
            365,6892,365,4118,4091,7427,6892,6833,6833,261,
            6833,261,261,261,261,261,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,9230,1,1,1,1,1,1,
            6892,6456,6453,6892,6930,2656,261,6892,154,1,
            572,1,5394,5146,6892,2052,6902,4953,6902,1,
            222,6830,1,1,1,2684,6892,2589,7135,2338,
            6892,3465,7184,7263,7264,7178,7185,7181,7157,7183,
            7182,7179,7180,7158,6892,6456,6453,6901,1041,6901,
            6501,222,2316,6892,7427,6892,6833,6833,261,6833,
            261,261,261,261,261,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,9230,1,1,1,1,1,1,1,
            6739,6739,6892,6745,365,261,365,149,397,2709,
            6892,10368,10365,3565,3707,1,6892,5091,1,409,
            6830,1,1,1,192,6898,2589,7135,2338,392,
            3465,6892,1,1,1,1,1,1,1,1,
            6892,1,1,1,1,1,1,1,1,1,
            1,1,1,7427,1,6544,6540,6806,6691,6892,
            6809,345,6694,6902,2442,1,1,1,1,1,
            1,397,1,1,1,1,1,1,1,1,
            1,1,1,1,37,6748,6748,192,6897,365,
            1,6892,6892,7489,6901,5023,397,1,1,1,
            6544,6540,3293,1041,5603,5488,5633,2316,6892,6504,
            6531,6537,6510,6513,6525,6522,6528,6519,6516,6507,
            6534,1,6544,6540,2379,6691,7283,809,156,2316,
            343,1143,3602,5580,5514,5680,5657,6911,5457,6928,
            670,873,6913,814,5818,835,6914,6912,637,6908,
            6909,6910,37,6748,6748,6892,118,6892,1438,117,
            5077,343,5844,551,6898,39,39,39,6456,6453,
            5208,1041,5603,5488,5633,2316,6886,626,7189,7187,
            7196,7195,7191,7192,7190,7193,7194,7197,7188,6892,
            4637,4333,5079,4637,4333,6892,6777,6774,6892,10368,
            10365,5580,5514,5680,5657,6911,5457,1430,670,873,
            6913,814,5818,835,6914,6912,637,6908,6909,6910,
            324,743,743,6366,3509,150,1438,6897,6892,6892,
            6892,6892,3707,6892,4270,6892,6867,6900,6900,6902,
            6899,172,6456,6453,5208,1041,5603,5488,5633,2316,
            6928,626,7189,7187,7196,7195,7191,7192,7190,7193,
            7194,7197,7188,37,6748,6748,6892,6892,6892,6748,
            6901,381,6892,6892,1368,5580,5514,5680,5657,6911,
            5457,145,670,873,6913,814,5818,835,6914,6912,
            637,6908,6909,6910,6892,6784,6780,1057,3278,7439,
            1438,6899,6899,6892,2877,1,4411,39,39,1,
            6544,6540,3293,1041,5603,5488,5633,2316,1577,6504,
            6531,6537,6510,6513,6525,6522,6528,6519,6516,6507,
            6534,2052,1,1,404,4145,7368,7382,7328,98,
            402,6848,397,5580,5514,5680,5657,6911,5457,6928,
            670,873,6913,814,5818,835,6914,6912,637,6908,
            6909,6910,45,6797,6797,1,101,6892,1438,4690,
            4118,4091,326,463,6851,39,39,39,6456,6453,
            5208,1041,5603,5488,5633,2316,6864,626,7189,7187,
            7196,7195,7191,7192,7190,7193,7194,7197,7188,5283,
            1,6903,7285,6892,1341,397,1856,6892,582,354,
            1388,5580,5514,5680,5657,6911,5457,6794,670,873,
            6913,814,5818,835,6914,6912,637,6908,6909,6910,
            397,5968,6892,6777,6774,6892,1438,6892,6899,1,
            352,455,3089,6815,2079,97,6867,39,6456,6453,
            5208,1041,5603,5488,5633,2316,6864,626,7189,7187,
            7196,7195,7191,7192,7190,7193,7194,7197,7188,2052,
            6892,11370,8991,1,2199,29,887,475,7390,7396,
            7394,5580,5514,5680,5657,6911,5457,6928,670,873,
            6913,814,5818,835,6914,6912,637,6908,6909,6910,
            2052,37,6748,6748,489,2990,1438,7388,7389,7419,
            7420,3188,7397,6892,1,1,6867,311,3890,6892,
            6827,1,573,6898,6640,6928,6892,7399,335,6459,
            6892,6462,6892,798,422,3536,3704,7400,7226,1751,
            1762,7421,6892,7398,7184,7263,7264,7178,7185,7181,
            7157,7183,7182,7179,7180,7158,6928,581,6465,7410,
            7409,1,7415,7416,7422,7413,7414,7393,7395,7417,
            6892,6839,7391,7392,7418,2052,7403,7404,7405,7401,
            7402,7411,7412,7407,7406,7408,6897,6643,6492,2311,
            7423,39,6456,6453,5208,1041,5603,5488,5633,2316,
            6896,626,7189,7187,7196,7195,7191,7192,7190,7193,
            7194,7197,7188,126,6842,48,3544,6892,48,6907,
            6892,1,6906,5173,713,5580,5514,5680,5657,6911,
            5457,6839,670,873,6913,814,5818,835,6914,6912,
            637,6908,6909,6910,1,6544,6540,6736,6691,6679,
            6697,6682,6694,47,6504,6531,6537,6510,6513,6525,
            6522,6528,6519,6516,6507,6534,1,4064,318,6907,
            3602,3360,6906,483,6842,589,3544,6661,6676,6673,
            6688,6685,6709,6670,6892,6724,6733,6703,6727,6667,
            6730,6700,6706,6721,6718,6715,6712,8,29,324,
            461,6892,4010,3937,4767,216,6889,6892,1383,6895,
            6739,6739,39,6456,6453,5208,1041,5603,5488,5633,
            2316,6892,626,7189,7187,7196,7195,7191,7192,7190,
            7193,7194,7197,7188,6892,6892,7209,225,589,3438,
            125,430,72,6892,2141,6892,5580,5514,5680,5657,
            6911,5457,713,670,873,6913,814,5818,835,6914,
            6912,637,6908,6909,6910,6892,6892,9970,4361,459,
            6889,1438,39,6456,6453,5208,1041,5603,5488,5633,
            2316,6892,626,7189,7187,7196,7195,7191,7192,7190,
            7193,7194,7197,7188,4064,713,6821,2036,484,2788,
            6892,6892,6892,35,6664,3131,5580,5514,5680,5657,
            6911,5457,6880,670,873,6913,814,5818,835,6914,
            6912,637,6908,6909,6910,6892,6883,6892,5983,4010,
            3937,6892,1380,39,6456,6453,3293,1041,5603,5488,
            5633,2316,6892,626,7189,7187,7196,7195,7191,7192,
            7190,7193,7194,7197,7188,4145,342,6892,6892,6892,
            6328,4798,6334,543,2,4185,2273,5580,5514,5680,
            5657,6911,5457,2791,670,873,6913,814,5818,835,
            6914,6912,637,6908,6909,6910,6892,6892,6892,5878,
            4118,4091,1438,39,6456,6453,3293,1041,5603,5488,
            5633,2316,4796,626,7189,7187,7196,7195,7191,7192,
            7190,7193,7194,7197,7188,541,6892,6892,37,6892,
            5337,6892,6892,6892,2181,6892,6892,5580,5514,5680,
            5657,6911,5457,6338,670,873,6913,814,5818,835,
            6914,6912,637,6908,6909,6910,6892,6892,6892,6892,
            6892,6892,1438,39,6456,6453,5208,1041,5603,5488,
            5633,2316,6892,626,7189,7187,7196,7195,7191,7192,
            7190,7193,7194,7197,7188,6892,545,6892,6892,6892,
            6892,6892,6892,6892,6892,6348,2791,5580,5514,5680,
            5657,6911,5457,4858,670,873,6913,814,5818,835,
            6914,6912,637,6908,6909,6910,6892,6892,6892,6892,
            6892,6892,1438,39,6456,6453,4570,1041,5603,5488,
            5633,2316,4920,626,7189,7187,7196,7195,7191,7192,
            7190,7193,7194,7197,7188,6892,6892,6892,6892,6892,
            6892,6892,6892,6892,6892,2943,903,5580,5514,5680,
            5657,6911,5457,6892,670,873,6913,814,5818,835,
            6914,6912,637,6908,6909,6910,39,6456,6453,5208,
            1041,5603,5488,5633,2316,6892,626,7189,7187,7196,
            7195,7191,7192,7190,7193,7194,7197,7188,6892,6892,
            6892,6892,6892,6892,6892,6892,6892,6892,6892,6892,
            5580,5514,5680,5657,6911,5457,6892,670,873,6913,
            814,5818,835,6914,6912,637,6908,6909,6910,39,
            6456,6453,3293,1041,5603,5488,5633,2316,6892,626,
            7189,7187,7196,7195,7191,7192,7190,7193,7194,7197,
            7188,6892,6892,6892,6892,6892,6892,6892,6892,6892,
            6892,6892,6892,5580,5514,5680,5657,6911,5457,6892,
            670,873,6913,814,5818,835,6914,6912,637,6908,
            6909,6910,39,6456,6453,3293,1041,5603,5488,5633,
            2316,6892,626,7189,7187,7196,7195,7191,7192,7190,
            7193,7194,7197,7188,6892,6892,6892,6892,6892,6892,
            6892,6892,6892,6892,6892,6892,5580,5514,5680,5657,
            6911,5457,6892,670,873,6913,814,5818,835,6914,
            6912,637,6908,6909,6910,39,6456,6453,5208,1041,
            5603,5488,5633,2316,6892,626,7189,7187,7196,7195,
            7191,7192,7190,7193,7194,7197,7188,1,6892,6892,
            6892,6892,6892,6892,6892,6892,194,6892,6892,5580,
            5514,5680,5657,6911,5457,6892,670,873,6913,814,
            5818,835,6914,6912,637,6908,6909,6910,6892,6456,
            6453,6892,6930,6892,6892,6892,6892,6892,758,7189,
            7187,7196,7195,7191,7192,7190,7193,7194,7197,7188,
            7184,7263,7264,7178,7185,7181,7157,7183,7182,7179,
            7180,7158,6892,6892,6892,6892,6892,6892,6892,194,
            6892,6892,6892,6892,6892,6892,6892,6892,273,6627,
            6623,7325,6631,6892,634,7326,7327,6892,758,6614,
            6620,6593,6596,6608,6605,6611,6602,6599,6590,6617,
            6569,6563,6560,6587,6566,6578,6557,6572,6575,6584,
            6581,6554,6892,6892,6892,6892,6892,6892,6892,6892,
            6892,6892,6892,6892,6892,6892,6892,6892,6906,6907,
            6892,7325,6892,6892,634,7326,7327,1186,7189,7187,
            7196,7195,7191,7192,7190,7193,7194,7197,7188,7184,
            7263,7264,7178,7185,7181,7157,7183,7182,7179,7180,
            7158,6892,6892,6892,6892,6892,6892,6892,6892,6892,
            6892,6892,6892,6892,6892,6892,273,6757,6754,6892,
            7325,6892,6892,634,7326,7327,1186,6614,6620,6593,
            6596,6608,6605,6611,6602,6599,6590,6617,6569,6563,
            6560,6587,6566,6578,6557,6572,6575,6584,6581,6554,
            6892,6892,6892,29,422,422,6652,422,6652,422,
            6652,422,6652,6892,74,6892,6892,3335,6892,7325,
            6892,6892,634,7326,7327,422,422,422,422,422,
            422,422,422,422,422,422,422,6892,1,6544,
            6540,4215,6691,6652,809,1,2316,6640,3890,6892,
            6954,6955,6892,6892,375,6892,6892,6459,6892,6892,
            6892,6892,6892,6652,32,423,423,6649,423,6649,
            423,6649,423,6649,4716,6652,6892,6892,6892,6892,
            6892,6892,6892,6892,6892,6892,423,423,423,423,
            423,423,423,423,423,423,423,423,2052,6892,
            6892,6892,6892,6892,6649,2052,6892,6892,6892,375,
            6643,6892,6892,375,6892,6892,6892,375,6892,6892,
            6892,6892,6892,6892,6649,6892,569,6892,6892,6892,
            6892,745,6892,868,6892,6892,6649,7189,7187,7196,
            7195,7191,7192,7190,7193,7194,7197,7188,7184,7263,
            7264,7178,7185,7181,7157,7183,7182,7179,7180,7158,
            37,6906,6906,6906,6906,6906,6892,6906,6892,6892,
            6892,6892,6892,6892,6892,6892,6892,6892,6892,6892,
            6892,6892,6906,6906,6906,6906,6906,6906,6906,6906,
            6906,6906,6906,6906,6892,6892,6892,6892,6892,6892,
            6892,6892,6892,6892,6892,6892,6892,6892,6892,6892,
            6892,6892,6892,6892,6892,6892,6892,6892,6892,6892,
            6906,6892,6892,6892,6906,6892,6892,6892,6906
        };
    };
    public final static char termAction[] = TermAction.termAction;
    @Override
    public final int termAction(int index) { return termAction[index]; }

    public interface Asb {
        public final static char asb[] = {0,
            904,7,485,1,945,837,837,837,837,651,
            945,663,663,583,663,120,469,122,486,486,
            486,486,486,486,486,486,486,665,671,676,
            673,680,678,685,683,687,686,688,267,689,
            485,485,42,42,42,42,524,223,15,15,
            660,42,567,171,663,663,15,524,171,171,
            162,469,947,41,1124,653,1005,485,663,665,
            379,379,223,485,486,486,486,486,486,486,
            486,486,486,486,486,486,486,486,486,486,
            486,486,486,485,485,485,485,485,485,485,
            485,485,485,485,485,486,171,1070,1070,1070,
            1070,1126,171,15,15,649,994,1005,79,1005,
            74,1005,9,1005,989,651,524,567,567,15,
            837,486,649,527,865,855,854,405,1012,1012,
            651,122,567,41,485,522,1123,521,523,521,
            171,567,673,673,671,671,671,678,678,678,
            678,676,676,683,680,680,686,685,687,1082,
            688,945,945,945,945,524,524,1070,43,645,
            469,1047,1045,1052,1050,1054,1053,1055,1056,1069,
            1070,660,524,316,174,76,381,77,651,524,
            524,1126,1070,162,567,704,171,867,869,524,
            1124,486,42,669,127,171,653,524,524,523,
            1124,485,485,485,485,485,945,945,622,633,
            633,633,633,617,651,776,486,486,486,486,
            486,486,486,486,486,485,485,485,485,485,
            485,485,485,485,485,485,485,486,469,317,
            658,656,174,524,783,578,781,1126,79,319,
            524,1126,524,171,859,847,858,869,1126,522,
            171,669,649,1123,653,524,522,171,171,171,
            171,223,223,524,486,1045,1045,1045,1050,1047,
            1047,1053,1052,1054,1082,1055,317,656,322,524,
            174,1082,77,837,1128,767,1072,174,783,782,
            783,783,1126,319,319,524,524,325,485,856,
            856,386,386,524,863,649,792,171,524,669,
            670,669,485,127,772,665,653,171,171,1126,
            787,485,656,656,1124,79,79,1070,837,521,
            335,1074,518,945,783,783,783,783,524,319,
            321,825,321,325,485,485,869,524,1124,171,
            867,847,325,416,669,223,486,567,772,524,
            656,655,522,340,79,729,190,522,783,783,
            518,709,486,1082,394,830,524,649,783,783,
            570,321,322,486,524,720,869,325,670,171,
            567,656,710,340,340,265,1084,308,945,77,
            766,190,522,783,79,651,1074,486,486,1123,
            518,839,218,571,524,322,720,171,720,322,
            340,340,728,308,265,843,651,1069,837,399,
            399,710,79,449,839,524,945,570,524,651,
            651,524,945,713,720,322,729,340,710,393,
            709,171,651,524,190,729,190,1068,1068,774,
            450,651,524,223,524,524,524,870,713,340,
            485,83,518,710,524,524,190,42,42,774,
            449,1082,486,1082,710,448,945,945,945,450,
            945,524,275,710,710,524,79,171,524,524,
            170,715,322,171,322,79,524,710,1069,441,
            945,441,450,1082,450,469,469,467,448,469,
            710,710,726,447,42,715,322,83,710,72,
            792,450,171,518,171,467,308,945,171,774,
            83,399,171,171,429,450,726,450,710,308,
            485,450,447,321,1068,79,79,979,485,448,
            223,710,171,708,82,521,450,171,710,708,
            708,450
        };
    };
    public final static char asb[] = Asb.asb;
    @Override
    public final int asb(int index) { return asb[index]; }

    public interface Asr {
        public final static byte asr[] = {0,
            9,71,118,72,40,68,120,0,4,9,
            69,1,2,0,41,66,42,43,67,8,
            44,45,46,47,59,48,49,50,51,52,
            38,36,37,7,5,34,35,6,39,64,
            3,4,10,1,2,56,57,58,12,21,
            11,17,15,16,18,19,14,13,20,25,
            31,32,27,30,29,22,26,23,24,28,
            33,53,0,55,4,71,1,2,69,9,
            0,73,59,36,37,7,5,34,35,39,
            45,3,4,50,51,52,38,48,43,47,
            12,21,11,17,15,16,18,19,14,13,
            20,10,42,46,44,41,49,69,9,8,
            6,1,2,67,66,0,98,91,34,35,
            99,100,86,87,54,89,90,92,93,94,
            95,96,101,102,71,97,70,103,104,105,
            106,107,108,109,110,111,112,118,73,40,
            120,64,1,2,7,5,4,3,60,68,
            72,9,0,88,61,8,114,115,116,63,
            9,3,7,5,6,71,73,40,62,25,
            11,12,53,23,13,56,26,27,14,28,
            29,15,16,30,31,17,18,32,57,55,
            33,10,58,19,20,24,21,1,2,4,
            22,0,9,72,11,12,41,66,13,42,
            43,14,15,16,67,8,44,17,18,45,
            46,47,59,48,49,10,19,20,21,50,
            51,52,1,2,3,36,37,7,5,34,
            35,6,39,4,38,0,64,71,97,68,
            118,72,73,120,11,12,41,66,13,42,
            43,14,15,16,67,44,17,18,45,46,
            47,59,48,49,10,19,20,21,50,51,
            52,38,36,37,34,35,39,9,40,6,
            8,1,2,4,3,7,5,0,1,2,
            68,73,9,0,23,59,24,9,64,97,
            70,68,72,0,9,71,69,74,0,65,
            25,11,12,53,23,13,56,26,88,27,
            14,28,29,15,16,30,61,31,17,18,
            32,57,33,10,58,19,63,22,20,24,
            21,9,3,7,5,73,40,62,8,6,
            55,1,2,4,0,74,64,71,97,72,
            69,60,3,9,68,40,70,0,64,70,
            68,1,2,0,11,12,13,14,15,16,
            17,18,19,20,21,25,23,26,27,28,
            29,30,31,32,33,22,24,40,9,72,
            8,1,2,60,3,7,5,6,4,0,
            88,114,115,116,55,71,113,121,73,62,
            74,63,61,65,76,78,84,82,75,80,
            81,83,85,69,77,79,40,9,25,53,
            23,56,26,27,28,29,30,31,32,57,
            33,58,22,24,59,66,67,10,42,46,
            44,41,49,12,21,11,17,15,16,18,
            19,14,13,20,50,51,52,38,48,43,
            47,36,37,34,35,39,45,7,5,3,
            4,8,6,1,2,0,66,67,3,10,
            42,46,44,41,49,12,21,11,17,15,
            16,18,19,14,13,20,50,51,52,38,
            48,43,47,6,8,4,36,37,7,5,
            34,35,39,45,1,2,118,9,0,22,
            1,2,4,114,115,116,0,4,9,71,
            69,0,67,66,34,35,99,100,94,95,
            6,39,70,54,106,107,103,104,105,111,
            110,112,87,86,108,109,92,93,89,90,
            96,101,36,37,91,117,10,56,53,57,
            58,12,21,11,17,15,16,18,19,14,
            13,20,25,31,32,27,30,29,22,26,
            23,24,28,33,64,68,3,60,7,5,
            1,2,4,0,59,23,24,8,6,1,
            2,4,74,69,119,117,36,37,60,3,
            98,91,5,99,100,34,35,87,86,54,
            89,90,92,93,7,94,95,96,64,97,
            72,120,70,103,104,105,106,107,108,109,
            110,111,112,71,118,101,102,73,68,40,
            9,0,23,24,74,3,71,40,69,59,
            9,64,97,68,72,70,0,69,53,23,
            13,56,26,14,28,29,15,16,30,31,
            17,18,32,57,33,58,19,22,20,24,
            21,12,11,25,9,3,7,5,40,63,
            65,88,27,62,55,61,8,1,2,4,
            10,6,0,113,0,54,64,89,90,0,
            4,54,9,71,69,0,72,9,87,86,
            0,25,11,12,53,23,13,56,26,27,
            14,28,29,15,16,30,31,17,18,32,
            57,33,10,58,19,22,20,24,21,1,
            2,4,97,0,9,68,73,70,0,71,
            9,60,3,70,68,40,54,0,9,69,
            68,0,9,69,70,0,7,5,8,6,
            4,1,2,3,60,64,70,68,9,72,
            97,0,6,8,3,60,5,7,97,25,
            11,12,53,23,13,56,26,27,14,28,
            29,15,16,30,31,17,18,32,57,33,
            10,58,19,22,20,24,21,1,2,4,
            72,9,0,11,12,41,66,13,42,43,
            14,15,16,67,8,44,17,18,45,46,
            47,59,48,49,10,19,20,21,50,51,
            52,38,1,2,36,37,7,5,34,35,
            6,39,4,62,3,0,66,67,36,37,
            34,35,39,45,50,51,52,38,48,43,
            47,12,21,11,17,15,16,18,19,14,
            13,20,10,42,46,44,41,49,7,5,
            3,60,8,6,4,1,2,0,10,56,
            53,57,58,12,21,11,17,15,16,18,
            19,14,13,20,74,71,97,118,73,69,
            120,8,31,32,33,22,24,1,2,30,
            29,28,27,26,6,4,23,25,119,98,
            117,91,36,37,34,35,99,100,9,60,
            3,5,72,40,87,86,54,89,90,92,
            93,7,94,95,96,101,102,103,104,105,
            106,107,108,109,110,111,112,70,68,64,
            0,40,9,3,8,6,7,5,4,1,
            2,71,0,53,23,13,56,26,14,28,
            29,15,16,30,31,17,18,32,57,33,
            10,58,19,22,20,24,21,12,11,25,
            9,3,7,40,63,61,65,88,27,62,
            54,4,5,8,6,1,2,55,0
        };
    };
    public final static byte asr[] = Asr.asr;
    @Override
    public final int asr(int index) { return asr[index]; }

    public interface Nasb {
        public final static char nasb[] = {0,
            204,12,63,12,12,12,12,12,12,67,
            12,12,12,130,12,220,153,27,63,63,
            252,63,63,63,63,63,63,12,12,12,
            12,12,12,12,12,12,12,12,63,12,
            63,195,154,154,154,154,27,81,177,177,
            53,5,107,232,12,12,177,256,232,232,
            161,1,63,56,18,12,12,195,12,12,
            40,40,81,195,63,63,63,63,63,63,
            63,63,63,63,63,63,63,63,63,63,
            63,63,63,63,63,63,63,63,63,63,
            63,63,63,63,195,63,232,12,12,12,
            12,76,232,30,30,184,274,275,212,275,
            50,275,13,275,268,10,27,107,107,30,
            12,63,184,102,160,20,20,12,12,12,
            10,27,107,154,84,220,126,219,27,219,
            232,107,12,12,12,12,12,12,12,12,
            12,12,12,12,12,12,12,12,12,12,
            12,12,12,12,12,47,11,12,245,161,
            148,12,12,12,12,12,12,12,12,12,
            12,226,27,12,177,46,67,24,67,27,
            11,12,12,224,107,12,232,198,177,27,
            18,63,154,177,71,232,12,11,27,157,
            18,63,195,195,195,195,12,12,274,275,
            275,275,275,294,10,12,63,63,63,63,
            63,63,63,63,63,63,63,63,63,63,
            63,63,63,63,63,63,195,63,30,186,
            186,186,302,47,109,109,12,239,212,177,
            239,17,47,232,12,170,12,201,16,47,
            232,38,226,126,12,256,47,232,232,232,
            232,81,81,27,63,12,12,12,12,12,
            12,12,12,12,12,12,12,177,138,27,
            167,12,123,12,12,79,286,302,109,109,
            177,177,17,177,257,11,47,177,63,12,
            12,20,20,27,169,184,201,232,47,177,
            115,12,195,226,158,12,12,232,232,17,
            232,63,186,117,18,212,141,12,12,67,
            177,179,172,12,177,177,74,74,47,257,
            90,12,12,117,63,63,177,11,18,232,
            198,214,177,12,38,81,63,107,158,47,
            177,117,220,177,212,277,177,239,177,94,
            216,167,63,12,92,12,27,184,74,74,
            111,90,138,63,257,177,201,117,115,232,
            107,117,167,259,177,12,277,287,12,140,
            79,201,220,94,134,119,172,63,63,87,
            216,12,67,58,239,138,96,232,177,138,
            277,259,211,179,12,12,67,12,12,98,
            98,167,134,137,12,239,12,188,239,67,
            67,11,12,177,96,138,277,177,167,143,
            12,232,67,239,201,277,177,12,12,177,
            192,119,11,81,11,239,239,230,117,259,
            84,61,172,167,239,124,201,154,154,69,
            207,12,63,12,167,12,12,12,12,208,
            12,257,165,167,167,257,145,232,11,11,
            232,177,138,232,177,212,124,167,12,100,
            12,12,208,12,208,282,282,234,12,282,
            167,167,12,177,154,96,138,177,167,12,
            154,208,232,172,232,264,177,12,232,69,
            61,98,232,232,177,208,12,208,167,172,
            195,208,100,138,12,145,145,170,63,12,
            242,167,232,22,60,219,208,232,167,22,
            12,208
        };
    };
    public final static char nasb[] = Nasb.nasb;
    @Override
    public final int nasb(int index) { return nasb[index]; }

    public interface Nasr {
        public final static char nasr[] = {0,
            3,13,10,9,137,136,113,135,134,4,
            2,0,166,200,0,154,2,75,0,79,
            0,176,0,42,1,0,2,44,0,4,
            10,9,2,13,127,5,0,161,0,4,
            2,9,10,157,0,44,2,3,0,166,
            205,0,5,212,0,192,0,210,0,80,
            148,42,10,9,2,13,4,0,175,0,
            5,194,0,123,0,154,75,0,170,0,
            5,105,0,5,28,0,75,53,0,167,
            0,208,0,173,0,144,0,121,0,129,
            0,13,2,9,10,4,94,0,122,0,
            4,115,209,0,159,0,51,0,186,4,
            185,0,140,117,0,75,156,155,0,5,
            60,213,0,42,174,0,5,80,0,1,
            140,0,201,0,42,66,0,13,2,9,
            10,4,36,5,60,0,2,131,0,32,
            100,101,5,0,5,36,39,0,32,101,
            100,77,4,2,9,10,5,0,5,10,
            9,2,77,4,98,53,0,4,115,182,
            0,50,42,196,5,36,0,53,4,98,
            27,5,0,5,191,0,80,36,50,82,
            5,42,0,101,100,53,77,68,4,10,
            9,2,0,101,100,53,4,68,0,60,
            5,32,0,36,5,27,198,0,2,67,
            0,5,195,0,137,214,136,113,135,134,
            0,4,10,9,13,3,1,0,132,5,
            50,93,0,60,5,197,0,2,4,113,
            110,111,112,13,69,0,5,50,93,95,
            0,5,60,116,0,39,4,2,9,10,
            5,172,0,113,69,13,110,111,112,190,
            0,5,50,93,115,48,4,0
        };
    };
    public final static char nasr[] = Nasr.nasr;
    @Override
    public final int nasr(int index) { return nasr[index]; }

    public interface TerminalIndex {
        public final static char terminalIndex[] = {0,
            113,114,2,31,10,13,9,79,115,100,
            48,52,60,68,74,75,86,87,102,105,
            107,104,54,106,47,64,66,70,73,76,
            83,89,98,11,12,7,8,112,14,120,
            55,61,67,84,88,90,94,97,99,109,
            110,111,53,19,93,63,91,101,95,1,
            77,122,103,20,46,58,78,44,121,33,
            30,118,119,96,108,49,50,56,57,59,
            69,71,72,85,92,17,18,65,21,22,
            6,23,24,25,26,27,32,4,15,16,
            28,29,34,35,36,37,38,39,40,41,
            42,43,51,80,81,82,5,117,3,123,
            62,116
        };
    };
    public final static char terminalIndex[] = TerminalIndex.terminalIndex;
    @Override
    public final int terminalIndex(int index) { return terminalIndex[index]; }

    public interface NonterminalIndex {
        public final static char nonterminalIndex[] = {0,
            130,135,136,0,0,134,0,0,237,243,
            133,0,143,0,132,0,0,142,148,0,
            0,149,158,159,160,161,188,151,0,162,
            141,126,163,164,165,131,166,167,128,168,
            0,129,138,137,170,169,171,185,0,0,
            195,172,0,173,0,0,0,0,0,152,
            174,175,176,0,177,180,0,155,194,0,
            0,0,212,0,0,209,213,0,214,127,
            145,179,0,0,0,0,0,0,183,0,
            0,0,0,125,186,0,0,210,216,217,
            218,0,220,157,0,146,0,0,215,197,
            198,199,201,227,228,182,204,0,0,219,
            0,0,0,0,248,0,251,0,252,0,
            147,187,189,190,191,192,196,200,203,0,
            206,0,207,0,222,225,0,0,0,246,
            0,247,0,0,139,140,144,0,0,154,
            156,0,178,0,193,0,0,0,202,0,
            205,211,0,223,224,0,0,229,232,0,
            234,236,0,240,241,242,245,0,0,249,
            124,0,150,153,0,181,0,184,0,0,
            208,221,226,0,0,230,231,233,235,0,
            238,239,244,250,253,254,0,0,0,0,
            0,0,0,0,0
        };
    };
    public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex;
    @Override
    public final int nonterminalIndex(int index) { return nonterminalIndex[index]; }

    public interface ScopePrefix {
        public final static char scopePrefix[] = {
            172,324,600,619,317,332,551,567,578,589,
            372,280,294,311,344,55,305,392,430,180,
            608,502,20,33,64,84,93,98,103,143,
            208,339,350,20,467,157,286,300,526,40,
            157,382,20,627,40,230,259,1,14,27,
            74,89,119,27,361,365,448,495,547,637,
            641,645,110,7,110,410,426,439,460,479,
            539,129,129,245,439,558,574,585,596,220,
            513,69,69,169,235,238,69,254,275,238,
            238,69,369,492,499,169,69,660,123,355,
            414,454,486,472,69,355,401,190,117,452,
            649,656,649,656,78,420,150,117,117,264
        };
    };
    public final static char scopePrefix[] = ScopePrefix.scopePrefix;
    @Override
    public final int scopePrefix(int index) { return scopePrefix[index]; }

    public interface ScopeSuffix {
        public final static char scopeSuffix[] = {
            18,148,5,5,148,148,5,5,5,5,
            379,148,108,148,25,61,291,398,436,186,
            80,508,25,38,38,38,72,72,108,148,
            213,31,31,25,5,162,291,114,531,51,
            165,387,614,632,45,224,224,5,18,31,
            5,72,108,31,108,108,148,257,5,5,
            5,257,658,11,114,379,379,379,464,483,
            531,133,138,249,443,562,562,562,562,224,
            517,72,72,5,5,241,243,257,5,278,
            278,243,108,5,257,5,524,5,126,358,
            417,457,489,475,543,534,404,193,108,108,
            651,651,653,653,80,422,152,215,200,266
        };
    };
    public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix;
    @Override
    public final int scopeSuffix(int index) { return scopeSuffix[index]; }

    public interface ScopeLhs {
        public final static char scopeLhs[] = {
            48,112,18,18,92,112,18,18,18,18,
            85,97,49,92,111,90,58,85,84,48,
            18,20,190,3,7,8,182,182,178,110,
            48,111,111,138,45,147,59,49,157,151,
            147,85,18,18,151,102,72,153,88,190,
            185,182,178,138,199,56,66,161,18,18,
            18,18,12,129,178,85,84,84,64,41,
            157,114,114,68,84,18,18,18,18,102,
            20,186,182,201,100,109,74,79,73,172,
            89,138,86,162,161,192,157,17,178,138,
            116,83,22,45,157,157,85,48,178,78,
            155,44,155,44,185,116,110,48,48,72
        };
    };
    public final static char scopeLhs[] = ScopeLhs.scopeLhs;
    @Override
    public final int scopeLhs(int index) { return scopeLhs[index]; }

    public interface ScopeLa {
        public final static byte scopeLa[] = {
            113,73,72,72,73,73,72,72,72,72,
            72,73,40,73,1,64,1,72,121,69,
            3,72,1,64,64,64,1,1,40,73,
            69,1,1,1,72,73,1,1,4,64,
            68,40,1,1,64,72,72,72,113,1,
            72,1,40,1,40,40,73,118,72,72,
            72,118,1,72,1,72,72,72,71,71,
            4,1,1,5,72,64,64,64,64,72,
            3,1,1,72,72,3,1,118,72,1,
            1,1,40,72,118,72,6,72,1,55,
            70,71,72,64,1,55,75,74,40,40,
            4,4,4,4,3,1,69,1,1,3
        };
    };
    public final static byte scopeLa[] = ScopeLa.scopeLa;
    @Override
    public final int scopeLa(int index) { return scopeLa[index]; }

    public interface ScopeStateSet {
        public final static char scopeStateSet[] = {
            85,183,284,284,107,183,284,284,284,284,
            95,109,85,107,183,107,87,95,95,85,
            284,284,118,214,260,260,54,54,82,183,
            85,183,183,185,140,371,87,85,165,50,
            371,95,284,284,50,174,66,26,95,118,
            30,54,82,185,22,87,33,63,284,284,
            284,284,264,6,82,95,95,95,148,344,
            165,183,183,124,95,284,284,284,284,174,
            284,30,54,24,174,176,66,170,66,60,
            71,185,95,57,63,168,165,284,82,185,
            1,95,285,140,165,165,95,85,82,11,
            121,189,121,189,30,1,183,85,85,66
        };
    };
    public final static char scopeStateSet[] = ScopeStateSet.scopeStateSet;
    @Override
    public final int scopeStateSet(int index) { return scopeStateSet[index]; }

    public interface ScopeRhs {
        public final static char scopeRhs[] = {0,
            338,3,59,0,126,0,337,3,113,0,
            126,180,0,127,188,74,0,224,0,197,
            166,126,10,0,136,0,166,126,10,0,
            135,0,271,127,54,124,0,20,0,309,
            127,54,55,0,20,53,0,33,132,0,
            20,53,0,0,309,127,54,55,215,0,
            20,186,0,271,127,54,132,0,189,126,
            0,141,0,227,3,308,0,308,0,2,
            0,126,0,271,127,54,131,0,189,126,
            237,0,189,126,22,237,0,189,126,332,
            22,0,128,197,166,126,0,128,0,197,
            166,126,0,134,128,0,172,0,328,127,
            172,0,127,172,0,230,128,0,166,327,
            235,0,136,0,0,0,0,135,0,0,
            0,0,326,127,164,236,0,127,0,236,
            0,129,0,0,127,0,325,127,164,270,
            0,127,0,0,44,127,0,0,150,3,
            0,127,296,295,127,74,294,172,0,295,
            127,74,294,172,0,223,0,224,0,294,
            172,0,96,0,0,223,0,224,0,211,
            96,0,0,223,0,224,0,295,127,294,
            172,0,223,0,211,0,0,223,0,240,
            127,3,0,126,0,0,0,0,0,240,
            127,3,222,0,231,3,0,220,127,0,
            216,0,146,0,175,166,126,0,10,0,
            0,0,0,226,60,0,125,0,240,127,
            3,195,0,195,0,2,0,0,126,0,
            0,0,0,0,211,3,0,209,0,252,
            127,164,38,27,0,189,126,61,63,0,
            204,128,0,128,189,126,292,63,0,189,
            126,292,63,0,189,126,70,123,61,0,
            252,127,164,262,61,0,252,127,164,262,
            239,61,0,289,290,127,164,123,322,56,
            0,289,290,127,164,322,56,0,189,126,
            288,56,0,197,189,126,288,235,0,189,
            126,288,235,0,166,126,0,93,136,0,
            286,127,149,0,286,127,172,0,158,84,
            0,317,161,319,320,3,81,0,126,179,
            0,319,320,3,81,0,128,0,126,179,
            0,158,3,75,204,80,0,126,128,0,
            204,80,0,108,2,131,126,128,0,238,
            3,75,0,211,182,0,33,169,0,182,
            0,183,33,169,0,238,3,85,0,204,
            154,238,3,83,0,62,179,0,238,3,
            83,0,126,179,62,179,0,318,127,164,
            0,158,0,226,77,0,30,179,0,158,
            102,185,0,30,177,0,148,64,167,3,
            0,167,3,0,20,161,126,0,158,102,
            162,0,30,169,0,203,3,0,126,149,
            0,227,3,0,226,60,283,0,158,60,
            0,203,3,314,67,126,0,126,0,0,
            0,0,314,67,126,0,2,145,126,0,
            0,0,0,147,0,125,55,166,126,0,
            31,147,0,93,136,31,147,0,228,189,
            126,0,146,31,147,0,158,3,49,0,
            158,3,64,203,54,41,0,203,54,41,
            0,20,2,131,126,0,158,3,64,203,
            54,44,0,203,54,44,0,158,3,64,
            203,54,46,0,203,54,46,0,158,3,
            64,203,54,42,0,203,54,42,0,227,
            3,125,197,166,126,10,0,125,197,166,
            126,10,0,136,2,0,126,0,227,3,
            124,276,166,126,10,0,276,166,126,10,
            0,135,2,0,126,0,227,3,135,0,
            227,3,140,0,158,60,140,0,278,0,
            31,0,31,139,0,165,0,134,0,158,
            3,0
        };
    };
    public final static char scopeRhs[] = ScopeRhs.scopeRhs;
    @Override
    public final int scopeRhs(int index) { return scopeRhs[index]; }

    public interface ScopeState {
        public final static char scopeState[] = {0,
            5858,6334,6328,5983,0,2804,1340,2010,1062,0,
            5305,5243,5175,5044,4982,4920,4858,4796,4734,4535,
            4473,4798,0,2593,0,2930,2310,1994,0,2273,
            2141,0,5305,5243,2995,2871,5175,5044,4982,4920,
            4858,4796,2869,4734,4535,4473,2598,2540,0,6109,
            4896,6039,0,4361,2079,0,2445,2088,0,652,
            5997,0,823,706,0,4677,652,4422,4664,5997,
            4624,5133,2511,2181,3844,3278,2379,4229,4215,4172,
            0,6234,6195,0,6234,6195,5864,6161,6101,5852,
            6089,6029,5840,5968,5305,5243,5175,5044,4982,4920,
            4858,4796,4734,4535,4473,0,6234,6195,5864,6161,
            6101,5852,6089,6029,5840,5968,0,6162,5442,0,
            2318,2244,0,3844,4677,4990,4422,4664,6202,4229,
            2917,3603,2866,4484,4706,2471,3345,2080,0,3408,
            3509,3620,3565,3857,3817,3707,3293,2877,928,2811,
            2745,2679,2613,2547,2481,2415,2349,2283,2217,2151,
            836,768,676,0,868,745,0,956,0,2260,
            1954,650,648,4664,4706,4624,4215,4172,3257,3890,
            717,0,6162,5442,5962,598,4307,0,6315,6301,
            6263,6246,6110,5872,5314,5184,5011,4949,5264,5195,
            4887,4867,5073,4564,4328,764,3884,4828,4502,4252,
            924,672,0,4262,3978,6315,6301,6263,3903,3898,
            6246,640,6110,5872,5314,5184,5011,1765,3594,1718,
            1671,4949,1624,5264,5195,1577,1480,1430,1383,4887,
            4867,1334,3330,5073,3184,4564,3445,4328,764,3884,
            1248,4828,4502,4252,5962,809,4307,924,672,2841,
            2775,1192,1041,903,4624,5133,2511,2181,3844,4677,
            3278,652,4422,4664,2379,4229,4215,5997,4172,2709,
            2643,868,745,5818,2877,4185,928,3408,2811,2745,
            2679,2613,2547,2481,2415,2349,2283,2217,2151,3509,
            3620,3565,3857,3817,3707,4145,4118,4091,5795,3293,
            5772,836,768,676,3369,3471,1105,1253,3786,3755,
            3673,4446,4379,4064,4037,4010,3937,5418,5394,5146,
            4637,4333,5749,5726,5703,5680,5657,5633,5603,5580,
            5514,5488,5457,2943,3230,3188,3131,3089,3032,2990,
            1388,1341,1292,2094,2052,2005,1958,1911,1864,1817,
            1770,1723,1676,1629,1582,1535,598,1488,1438,1206,
            1057,994,1143,0
        };
    };
    public final static char scopeState[] = ScopeState.scopeState;
    @Override
    public final int scopeState(int index) { return scopeState[index]; }

    public interface InSymb {
        public final static char inSymb[] = {0,
            0,313,127,285,49,41,44,46,42,10,
            135,124,131,8,132,4,3,126,45,39,
            6,35,34,5,7,37,36,140,145,147,
            146,152,148,156,155,159,157,160,59,162,
            68,3,54,54,54,54,126,3,54,54,
            182,127,60,3,66,67,54,6,203,158,
            182,127,66,67,166,165,124,3,123,125,
            117,119,3,60,91,98,35,34,100,99,
            5,90,89,64,54,86,87,7,93,92,
            95,94,96,112,111,110,109,108,107,106,
            105,104,103,70,102,101,158,203,203,203,
            203,166,227,127,127,127,255,256,236,257,
            235,258,56,287,259,10,126,60,60,127,
            124,154,127,60,3,223,222,135,125,124,
            10,126,60,314,3,197,4,55,126,55,
            227,158,146,146,145,145,145,148,148,148,
            148,147,147,155,152,152,157,156,159,158,
            160,64,64,64,64,197,276,271,127,249,
            3,167,148,174,169,183,176,184,185,274,
            271,220,126,175,164,327,288,322,288,126,
            189,166,271,220,226,162,231,127,3,126,
            166,216,3,315,182,150,278,197,126,189,
            166,71,3,3,3,3,125,124,255,256,
            257,258,336,259,10,167,90,89,54,7,
            93,92,95,94,96,112,111,110,109,108,
            107,106,105,104,103,70,102,101,68,166,
            7,5,127,166,243,125,124,126,123,164,
            126,166,55,240,241,149,242,127,166,55,
            203,127,127,4,228,6,55,158,158,158,
            158,3,3,126,64,148,148,148,169,167,
            167,176,174,183,158,184,175,175,326,126,
            170,237,61,55,215,63,172,329,125,124,
            244,244,189,164,127,189,197,154,70,231,
            211,199,195,126,3,127,68,240,197,154,
            280,283,60,190,4,123,125,227,227,166,
            148,71,5,127,166,262,239,54,55,292,
            294,127,3,195,244,244,127,127,197,127,
            290,123,291,127,70,70,3,189,166,211,
            127,220,154,125,127,3,60,158,4,197,
            175,173,197,164,262,64,54,126,74,127,
            220,328,71,303,211,124,126,127,127,127,
            71,290,289,70,68,229,127,127,280,227,
            226,127,128,127,164,27,55,172,65,61,
            63,127,189,127,295,71,68,71,70,166,
            220,331,237,22,126,289,127,240,229,252,
            254,127,38,127,3,123,61,309,55,10,
            53,128,295,164,307,126,308,68,126,22,
            332,189,59,154,127,252,127,164,286,265,
            293,38,70,126,68,64,54,243,243,296,
            127,68,189,3,189,126,126,3,127,127,
            3,70,68,154,126,189,127,70,70,127,
            318,79,77,1,158,9,85,83,81,80,
            75,82,84,78,76,61,74,227,189,189,
            338,229,252,150,164,270,189,239,309,297,
            113,9,71,226,71,3,3,3,204,3,
            123,158,123,188,68,127,127,164,239,64,
            3,71,238,182,238,320,149,75,238,127,
            127,53,97,337,182,154,211,154,319,127,
            3,154,297,325,243,154,154,127,70,204,
            161,286,158,202,68,70,121,317,154,202,
            9,154
        };
    };
    public final static char inSymb[] = InSymb.inSymb;
    @Override
    public final int inSymb(int index) { return inSymb[index]; }

    public interface Name {
        public final static String name[] = {
            "",
            "[",
            "(",
            ".",
            ".*",
            "->",
            "->*",
            "++",
            "--",
            "&",
            "*",
            "+",
            "-",
            "~",
            "!",
            "/",
            "%",
            ">>",
            "<<",
            "<",
            ">",
            "<=",
            ">=",
            "==",
            "!=",
            "^",
            "|",
            "&&",
            "||",
            "?",
            ":",
            "::",
            "...",
            "=",
            "*=",
            "/=",
            "%=",
            "+=",
            "-=",
            ">>=",
            "<<=",
            "&=",
            "^=",
            "|=",
            ",",
            "$empty",
            "asm",
            "auto",
            "bool",
            "break",
            "case",
            "catch",
            "char",
            "class",
            "const",
            "const_cast",
            "continue",
            "default",
            "delete",
            "do",
            "double",
            "dynamic_cast",
            "else",
            "enum",
            "explicit",
            "export",
            "extern",
            "false",
            "float",
            "for",
            "friend",
            "goto",
            "if",
            "inline",
            "int",
            "long",
            "mutable",
            "namespace",
            "new",
            "operator",
            "private",
            "protected",
            "public",
            "register",
            "reinterpret_cast",
            "return",
            "short",
            "signed",
            "sizeof",
            "static",
            "static_cast",
            "struct",
            "switch",
            "template",
            "this",
            "throw",
            "try",
            "true",
            "typedef",
            "typeid",
            "typename",
            "union",
            "unsigned",
            "using",
            "virtual",
            "void",
            "volatile",
            "wchar_t",
            "while",
            "integer",
            "floating",
            "charconst",
            "stringlit",
            "identifier",
            "Completion",
            "EndOfCompletion",
            "Invalid",
            "RightBracket",
            "RightParen",
            "RightBrace",
            "SemiColon",
            "LeftBrace",
            "ERROR_TOKEN",
            "EOF_TOKEN",
            "no_sizeof_type_id_start",
            "]",
            ")",
            "}",
            ";",
            "{",
            "identifier_token",
            "expression",
            "id_expression",
            "qualified_or_unqualified_name",
            "unqualified_id_name",
            "identifier_name",
            "template_id_name",
            "nested_name_specifier",
            "class_or_namespace_name",
            "nested_name_specifier_with_tem" +
            "plate",
            "class_or_namespace_name_with_t" +
            "emplate",
            "class_name",
            "postfix_expression",
            "simple_type_specifier",
            "pseudo_destructor_name",
            "type_id",
            "type_name",
            "destructor_type_name",
            "unary_expression",
            "cast_expression",
            "new_type_id",
            "expression_list",
            "type_specifier_seq",
            "new_declarator",
            "new_pointer_operators",
            "ptr_operator",
            "new_array_expressions",
            "constant_expression",
            "pm_expression",
            "multiplicative_expression",
            "additive_expression",
            "shift_expression",
            "relational_expression",
            "equality_expression",
            "and_expression",
            "exclusive_or_expression",
            "inclusive_or_expression",
            "logical_and_expression",
            "logical_or_expression",
            "assignment_expression",
            "relational_expression_inTempla" +
            "te",
            "equality_expression_inTemplate",
            "and_expression_inTemplate",
            "exclusive_or_expression_inTemp" +
            "late",
            "inclusive_or_expression_inTemp" +
            "late",
            "logical_and_expression_inTempl" +
            "ate",
            "logical_or_expression_inTempla" +
            "te",
            "assignment_expression_inTempla" +
            "te",
            "expression_list_actual",
            "statement",
            "compound_statement",
            "statement_seq",
            "condition",
            "declarator",
            "for_init_statement",
            "function_definition",
            "declaration",
            "declaration_seq",
            "declaration_specifiers",
            "simple_declaration_specifiers",
            "class_declaration_specifiers",
            "elaborated_declaration_specifi" +
            "ers",
            "enum_declaration_specifiers",
            "type_name_declaration_specifie" +
            "rs",
            "no_type_declaration_specifier",
            "cv_qualifier",
            "no_type_declaration_specifiers",
            "class_specifier",
            "elaborated_type_specifier",
            "enum_specifier",
            "type_name_specifier",
            "class_keyword",
            "enumerator_list",
            "enumerator_definition",
            "namespace_name",
            "init_declarator_list",
            "init_declarator_complete",
            "complete_declarator",
            "initializer",
            "direct_declarator",
            "ptr_operator_seq",
            "function_declarator",
            "basic_direct_declarator",
            "array_direct_declarator",
            "array_modifier",
            "abstract_declarator",
            "direct_abstract_declarator",
            "basic_direct_abstract_declarat" +
            "or",
            "array_direct_abstract_declarat" +
            "or",
            "parameter_declaration_list",
            "parameter_declaration",
            "parameter_init_declarator",
            "parameter_initializer",
            "function_body",
            "handler_seq",
            "initializer_clause",
            "initializer_seq",
            "class_head",
            "access_specifier_keyword",
            "member_declaration",
            "member_declarator_list",
            "member_declaration_list",
            "member_declarator_complete",
            "constant_initializer",
            "bit_field_declarator",
            "base_specifier_list",
            "base_specifier",
            "conversion_function_id",
            "conversion_type_id",
            "conversion_declarator",
            "mem_initializer_list",
            "mem_initializer",
            "mem_initializer_name",
            "operator_id_name",
            "overloadable_operator",
            "template_parameter_list",
            "template_parameter",
            "template_argument_list",
            "template_argument",
            "type_name_specifier_inTemplate",
            "type_name_declaration_specifie" +
            "rs_inTemplate",
            "type_specifier_seq_inTemplate",
            "handler",
            "exception_declaration",
            "type_id_list"
        };
    };
    public final static String name[] = Name.name;
    public final String name(int index) { return name[index]; }

    public final static int
           ERROR_SYMBOL      = 62,
           SCOPE_UBOUND      = 119,
           SCOPE_SIZE        = 120,
           MAX_NAME_LENGTH   = 43;

    public final int getErrorSymbol() { return ERROR_SYMBOL; }
    public final int getScopeUbound() { return SCOPE_UBOUND; }
    public final int getScopeSize() { return SCOPE_SIZE; }
    public final int getMaxNameLength() { return MAX_NAME_LENGTH; }

    public final static int
           NUM_STATES        = 602,
           NT_OFFSET         = 122,
           LA_STATE_OFFSET   = 7489,
           MAX_LA            = 2147483647,
           NUM_RULES         = 597,
           NUM_NONTERMINALS  = 225,
           NUM_SYMBOLS       = 347,
           SEGMENT_SIZE      = 8192,
           START_STATE       = 4508,
           IDENTIFIER_SYMBOL = 0,
           EOFT_SYMBOL       = 120,
           EOLT_SYMBOL       = 120,
           ACCEPT_ACTION     = 6452,
           ERROR_ACTION      = 6892;

    public final static boolean BACKTRACK = true;

    public final int getNumStates() { return NUM_STATES; }
    public final int getNtOffset() { return NT_OFFSET; }
    public final int getLaStateOffset() { return LA_STATE_OFFSET; }
    public final int getMaxLa() { return MAX_LA; }
    public final int getNumRules() { return NUM_RULES; }
    public final int getNumNonterminals() { return NUM_NONTERMINALS; }
    public final int getNumSymbols() { return NUM_SYMBOLS; }
    public final int getSegmentSize() { return SEGMENT_SIZE; }
    public final int getStartState() { return START_STATE; }
    public final int getStartSymbol() { return lhs[0]; }
    public final int getIdentifierSymbol() { return IDENTIFIER_SYMBOL; }
    public final int getEoftSymbol() { return EOFT_SYMBOL; }
    public final int getEoltSymbol() { return EOLT_SYMBOL; }
    public final int getAcceptAction() { return ACCEPT_ACTION; }
    public final int getErrorAction() { return ERROR_ACTION; }
    public final boolean isValidForParser() { return isValidForParser; }
    public final boolean getBacktrack() { return BACKTRACK; }

    public final int originalState(int state) {
        return -baseCheck[state];
    }
    public final int asi(int state) {
        return asb[originalState(state)];
    }
    public final int nasi(int state) {
        return nasb[originalState(state)];
    }
    public final int inSymbol(int state) {
        return inSymb[originalState(state)];
    }

    public final int ntAction(int state, int sym) {
        return baseAction[state + sym];
    }

    public final int tAction(int state, int sym) {
        int i = baseAction[state],
            k = i + sym;
        return termAction[termCheck[k] == sym ? k : i];
    }
    public final int lookAhead(int la_state, int sym) {
        int k = la_state + sym;
        return termAction[termCheck[k] == sym ? k : la_state];
    }
}
